Класс yii\grid\ActionColumn
| Наследование | yii\grid\ActionColumn » yii\grid\Column » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/grid/ActionColumn.php |
ActionColumn — это столбец для виджета yii\grid\GridView, который отображает кнопки для просмотра и управления элементами.
Чтобы добавить ActionColumn в gridview, добавьте его в конфигурацию columns следующим образом:
'columns' => [
// ...
[
'class' => ActionColumn::className(),
// you may configure additional properties here
],
]
Дополнительную информацию и сведения об использовании ActionColumn см. в статье руководства по виджетам данных.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $buttonOptions | array | Параметры HTML, которые будут применены к стандартной кнопке. | yii\grid\ActionColumn |
| $buttons | array | Обратные вызовы рендеринга кнопок. | yii\grid\ActionColumn |
| $content | callable | Это вызываемый объект, который будет использоваться для генерации содержимого каждой ячейки. | yii\grid\Column |
| $contentOptions | array|Closure | Атрибуты HTML для тега ячейки данных. | yii\grid\Column |
| $controller | string | Идентификатор контроллера, который должен обрабатывать указанные здесь действия. | yii\grid\ActionColumn |
| $filterOptions | array | Атрибуты HTML для тега ячейки фильтра. | yii\grid\Column |
| $footer | string | Содержимое ячейки подвала. | yii\grid\Column |
| $footerOptions | array | Атрибуты HTML для тега ячейки подвала. | yii\grid\Column |
| $grid | yii\grid\GridView | Объект представления таблицы, которому принадлежит этот столбец. | yii\grid\Column |
| $header | string | Содержимое ячейки заголовка. | yii\grid\Column |
| $headerOptions | array | Атрибуты HTML для тега ячейки заголовка. | yii\grid\ActionColumn |
| $options | array | Атрибуты HTML для тега группы столбцов. | yii\grid\Column |
| $template | string | Шаблон, используемый для составления каждой ячейки в столбце действий. | yii\grid\ActionColumn |
| $urlCreator | callable | Обратный вызов, создающий URL кнопки с указанной информацией модели. | yii\grid\ActionColumn |
| $visible | boolean | Определяет, отображается ли этот столбец. | yii\grid\Column |
| $visibleButtons | array | Условия видимости каждой кнопки. | yii\grid\ActionColumn |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| createUrl() | Создаёт URL для данного действия и модели. | yii\grid\ActionColumn |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\grid\ActionColumn |
| renderDataCell() | Отображает ячейку данных. | yii\grid\Column |
| renderFilterCell() | Отображает ячейку фильтра. | yii\grid\Column |
| renderFooterCell() | Отображает ячейку подвала. | yii\grid\Column |
| renderHeaderCell() | Отображает ячейку заголовка. | yii\grid\Column |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| getHeaderCellLabel() | Возвращает метку ячейки заголовка. | yii\grid\Column |
| initDefaultButton() | Инициализирует обратный вызов рендеринга стандартной кнопки для одиночной кнопки | yii\grid\ActionColumn |
| initDefaultButtons() | Инициализирует обратные вызовы рендеринга стандартных кнопок. | yii\grid\ActionColumn |
| renderDataCellContent() | Отображает содержимое ячейки данных. | yii\grid\ActionColumn |
| renderFilterCellContent() | Отображает содержимое ячейки фильтра. | yii\grid\Column |
| renderFooterCellContent() | Отображает содержимое ячейки подвала. | yii\grid\Column |
| renderHeaderCellContent() | Отображает содержимое ячейки заголовка. | yii\grid\Column |
Подробное описание свойств
$buttonOptions общее свойство (доступно с версии 2.0.4)
Параметры HTML, применяемые к кнопке по умолчанию.
public array $buttonOptions = []
$buttons общее свойство
Обратные вызовы для отображения кнопок. Ключи массива — имена кнопок (без фигурных скобок), а значения — соответствующие обратные вызовы для отображения кнопок. Обратные вызовы должны иметь следующий вид:
function ($url, $model, $key) {
// return the button HTML code
}
где $url — URL, созданный столбцом для кнопки, $model — объект модели, отображаемый для текущей строки, и $key — ключ модели в массиве поставщика данных.
Вы можете добавить дополнительные условия для кнопки, например, отображать её только при редактировании модели (предполагается, что у вас есть поле статуса, которое это указывает):
[
'update' => function ($url, $model, $key) {
return $model->status === 'editable' ? Html::a('Update', $url) : '';
},
],
public array $buttons = []
$controller общее свойство
ID контроллера, который должен обрабатывать указанные здесь действия. Если не указано, будет использован текущий активный контроллер. Это свойство в основном используется $urlCreator для создания URL-адресов для различных действий. Значение этого свойства будет добавлено как префикс к каждому имени действия для формирования маршрута действия.
public string $controller = null
$headerOptions общее свойство
Атрибуты HTML для тега ячейки заголовка.
public array $headerOptions = ['class' => 'action-column']
$template общее свойство
Шаблон, используемый для составления каждой ячейки в столбце действий. Токены, заключенные в фигурные скобки, интерпретируются как идентификаторы действий контроллера (также называемые *именами кнопок* в контексте столбца действий). Они будут заменены соответствующими обратными вызовами для отображения кнопок, указанными в $buttons. Например, токен {view} будет заменён результатом обратного вызова buttons['view']. Если обратный вызов не найден, токен будет заменён пустой строкой.
Например, чтобы отобразить только кнопки «Просмотр» и «Редактировать», вы можете добавить ActionColumn в столбцы GridView следующим образом:
['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update}'],
См. также $buttons.
public string $template = '{view} {update} {delete}'
$urlCreator общее свойство
Обратный вызов, создающий URL-адрес кнопки с использованием указанной информации о модели. Подпись обратного вызова должна быть такой же, как у createUrl() С версии 2.0.10 он может принимать дополнительный параметр, который относится к самому экземпляру столбца:
function (string $action, mixed $model, mixed $key, integer $index, ActionColumn $this) {
//return string;
}
Если это свойство не установлено, URL-адреса кнопок будут созданы с помощью createUrl().
public callable $urlCreator = null
$visibleButtons общее свойство (доступно с версии 2.0.7)
Условия видимости каждой кнопки. Ключи массива — имена кнопок (без фигурных скобок), а значения — булево значение true/false или анонимная функция. Если имя кнопки не указано в этом массиве, она будет отображаться по умолчанию. Обратные вызовы должны иметь следующий вид:
function ($model, $key, $index) {
return $model->status === 'editable';
}
Или вы можете передать булево значение:
[
'update' => \Yii::$app->user->can('update'),
],
public array $visibleButtons = []
Подробное описание методов
createUrl() общественный метод
Создаёт URL для данного действия и модели.
Этот метод вызывается для каждой кнопки и каждой строки.
| public строка createUrl ( $action, $model, $key, $index ) | ||
|---|---|---|
| $action | строка |
Имя кнопки (или идентификатор действия) |
| $model | yii\db\ActiveRecordInterface |
Модель данных |
| $key | смешанный тип |
Ключ, связанный с моделью данных |
| $index | целое число |
Текущий индекс строки |
| return | строка |
Созданный URL |
init() общественный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| public void init ( ) |
|---|
initDefaultButton() защищённый метод (доступен с версии 2.0.11)
Инициализирует обратный вызов для отображения кнопки по умолчанию для одиночной кнопки
| protected void initDefaultButton ( $name, $iconName, $additionalOptions = [] ) | ||
|---|---|---|
| $name | строка |
Имя кнопки, как оно написано в шаблоне |
| $iconName | строка |
Часть класса Bootstrap glyphicon, которая делает его уникальным |
| $additionalOptions | массив |
Массив дополнительных опций |
initDefaultButtons() защищённый метод
Инициализирует обратные вызовы для отображения кнопок по умолчанию.
| protected void initDefaultButtons ( ) |
|---|
renderDataCellContent() защищённый метод
Отображает содержимое ячейки данных.
| protected строка renderDataCellContent ( $model, $key, $index ) | ||
|---|---|---|
| $model | смешанный тип |
Модель данных |
| $key | смешанный тип |
Ключ, связанный с моделью данных |
| $index | целое число |
Индекс модели данных (с нуля) среди массива моделей, возвращённого yii\grid\GridView::$dataProvider. |
| return | строка |
Результат рендеринга |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-grid-actioncolumn.html