Класс yii\grid\GridView
| Наследование | yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/grid/GridView.php |
Виджет GridView используется для отображения данных в виде таблицы.
Он предоставляет функции, такие как сортировка, страничная навигация, а также фильтрацию данных.
Пример базового использования:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
'name',
'created_at:datetime',
// ...
],
]) ?>
Столбцы таблицы сетки настраиваются с помощью классов yii\grid\Column, которые настраиваются через $columns.
Внешний вид сетки может быть настроен с помощью большого количества свойств.
Для получения более подробной информации и использования GridView см. статью руководства о виджетах вывода данных.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $afterRow | Closure | Анонимная функция, вызываемая один раз ПОСЛЕ отрисовки каждой модели данных. | yii\grid\GridView |
| $autoIdPrefix | строка | Префикс для автоматически сгенерированных идентификаторов виджета. | yii\base\Widget |
| $beforeRow | Closure | Анонимная функция, вызываемая один раз ДО отрисовки каждой модели данных. | yii\grid\GridView |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $caption | строка | Заголовок таблицы грида | yii\grid\GridView |
| $captionOptions | массив | Атрибуты HTML для элемента заголовка. | yii\grid\GridView |
| $columns | массив | Конфигурация столбцов грида. | yii\grid\GridView |
| $counter | целое число | Счётчик, используемый для генерации $id для виджетов. | yii\base\Widget |
| $dataColumnClass | строка | Класс по умолчанию для столбцов данных, если имя класса не указано явно при конфигурировании столбца данных. | yii\grid\GridView |
| $dataProvider | yii\data\DataProviderInterface | Источник данных для представления. | yii\widgets\BaseListView |
| $emptyCell | строка | HTML-отображение, когда содержимое ячейки пустое. | yii\grid\GridView |
| $emptyText | строка|false | HTML-содержимое, отображаемое, когда $dataProvider не содержит данных. | yii\widgets\BaseListView |
| $emptyTextOptions | массив | Атрибуты HTML для пустого текста представления списка. | yii\widgets\BaseListView |
| $filterErrorOptions | массив | Параметры для отображения каждого сообщения об ошибке фильтра. | yii\grid\GridView |
| $filterErrorSummaryOptions | массив | Параметры для отображения сводки об ошибках фильтра. | yii\grid\GridView |
| $filterModel | yii\base\Model | Модель, хранящая данные фильтра, введённые пользователем. | yii\grid\GridView |
| $filterPosition | строка | Местоположение фильтров в представлении грида. | yii\grid\GridView |
| $filterRowOptions | массив | Атрибуты HTML для элемента строки фильтра. | yii\grid\GridView |
| $filterSelector | строка | Дополнительный jQuery селектор для выбора полей ввода фильтра. | yii\grid\GridView |
| $filterUrl | строка|массив | URL для получения результата фильтрации. | yii\grid\GridView |
| $footerRowOptions | массив | Атрибуты HTML для строки нижней части таблицы. | yii\grid\GridView |
| $formatter | массив|yii\i18n\Formatter | Форматировщик, используемый для форматирования значений атрибутов модели в отображаемый текст. | yii\grid\GridView |
| $headerRowOptions | массив | Атрибуты HTML для строки заголовка таблицы. | yii\grid\GridView |
| $id | строка | Идентификатор виджета. | yii\base\Widget |
| $layout | строка | Макет, определяющий, как должны быть организованы различные разделы представления списка. | yii\grid\GridView |
| $options | массив | Атрибуты HTML для контейнерного тега представления грида. | yii\grid\GridView |
| $pager | массив | Конфигурация виджета постраничной навигации. | yii\widgets\BaseListView |
| $rowOptions | массив|Closure | Атрибуты HTML для строк тела таблицы. | yii\grid\GridView |
| $showFooter | логическое значение | Показывать ли нижнюю часть таблицы грида. | yii\grid\GridView |
| $showHeader | логическое значение | Показывать ли верхнюю часть таблицы грида. | yii\grid\GridView |
| $showOnEmpty | логическое значение | Показывать ли представление грида, если $dataProvider возвращает данные. | yii\grid\GridView |
| $sorter | массив | Конфигурация виджета сортировки. | yii\widgets\BaseListView |
| $stack | yii\base\Widget[] | Виджеты, которые в данный момент отрисовываются (не закончены). | yii\base\Widget |
| $summary | строка | HTML-содержимое, отображаемое в виде сводки представления списка. | yii\widgets\BaseListView |
| $summaryOptions | массив | Атрибуты HTML для сводки представления списка. | yii\widgets\BaseListView |
| $tableOptions | массив | Атрибуты HTML для элемента таблицы грида. | yii\grid\GridView |
| $view | yii\web\View | Объект представления, который может быть использован для отрисовки представлений или файлов представления. | yii\base\Widget |
| $viewPath | строка | Путь к представлению, который может быть добавлен в качестве префикса к относительному имени представления. | yii\base\ViewContextInterface |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterRun() | Этот метод вызывается сразу после выполнения виджета. | yii\base\Widget |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeRun() | Этот метод вызывается непосредственно перед выполнением виджета. | yii\base\Widget |
| begin() | Начинает работу виджета. | yii\base\Widget |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| end() | Заканчивает работу виджета. | yii\base\Widget |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getId() | Возвращает идентификатор виджета. | yii\base\Widget |
| getView() | Возвращает объект представления, который может использоваться для отображения представлений или файлов представлений. | yii\base\Widget |
| getViewPath() | yii\base\ViewContextInterface | |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует таблицу. | yii\grid\GridView |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| render() | Отображает представление. | yii\base\Widget |
| renderCaption() | Отображает элемент подписи. | yii\grid\GridView |
| renderColumnGroup() | Отображает HTML группы столбцов. | yii\grid\GridView |
| renderEmpty() | Отображает HTML-контент, указывающий на отсутствие данных в списке представлений. | yii\widgets\BaseListView |
| renderErrors() | Отображает ошибки валидации модели фильтра. | yii\grid\GridView |
| renderFile() | Отображает файл представления. | yii\base\Widget |
| renderFilters() | Отображает фильтр. | yii\grid\GridView |
| renderItems() | Отображает модели данных для таблицы. | yii\grid\GridView |
| renderPager() | Отображает страницу. | yii\widgets\BaseListView |
| renderSection() | Отображает раздел указанного имени. | yii\grid\GridView |
| renderSorter() | Отображает сортировку. | yii\widgets\BaseListView |
| renderSummary() | Отображает сводку. | yii\widgets\BaseListView |
| renderTableBody() | Отображает тело таблицы. | yii\grid\GridView |
| renderTableFooter() | Отображает подвал таблицы. | yii\grid\GridView |
| renderTableHeader() | Отображает заголовок таблицы. | yii\grid\GridView |
| renderTableRow() | Отображает строку таблицы с заданной моделью данных и ключом. | yii\grid\GridView |
| run() | Выполняет виджет. | yii\grid\GridView |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| widget() | Создаёт экземпляр виджета и запускает его. | yii\base\Widget |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createDataColumn() | Создаёт объект yii\grid\DataColumn на основе строки в формате "атрибут:формат:метка". | yii\grid\GridView |
| getClientOptions() | Возвращает опции для виджета JS грида. | yii\grid\GridView |
| guessColumns() | Эта функция пытается угадать колонки для отображения из заданных данных, если колонки $columns не заданы явно. | yii\grid\GridView |
| initColumns() | Создаёт объекты колонок и инициализирует их. | yii\grid\GridView |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | Событие, поднимаемое сразу после выполнения виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | Событие, поднимаемое непосредственно перед выполнением виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | Событие, которое срабатывает при инициализации виджета с помощью init(). (доступно с версии 2.0.11) | yii\base\Widget |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| FILTER_POS_BODY | 'body' | yii\grid\GridView | |
| FILTER_POS_FOOTER | 'footer' | yii\grid\GridView | |
| FILTER_POS_HEADER | 'header' | yii\grid\GridView |
Подробности свойств
$afterRow общедоступное свойство
Анонимная функция, вызываемая после отрисовки каждой модели данных. Она должна иметь подобную сигнатуру, как $rowOptions. Результат выполнения функции будет отображен непосредственно.
public Closure $afterRow = null
$beforeRow общедоступное свойство
Анонимная функция, вызываемая перед отрисовкой каждой модели данных. Она должна иметь подобную сигнатуру, как $rowOptions. Результат выполнения функции будет отображен непосредственно.
public Closure $beforeRow = null
$caption общедоступное свойство
Заголовок таблицы грида
См. также $captionOptions.
public string $caption = null
$captionOptions общедоступное свойство
Атрибуты HTML для элемента заголовка.
См. также:
- yii\helpers\Html::renderTagAttributes() для деталей по отрисовке атрибутов.
- $caption
public array $captionOptions = []
$columns общедоступное свойство
Конфигурация колонок грида. Каждый элемент массива представляет конфигурацию одной колонки. Например,
[
['class' => SerialColumn::className()],
[
'class' => DataColumn::className(), // this line is optional
'attribute' => 'name',
'format' => 'text',
'label' => 'Name',
],
['class' => CheckboxColumn::className()],
]
Если колонка класса yii\grid\DataColumn, элемент "class" можно опустить.
В качестве сокращения, может быть использована строка для указания конфигурации колонки, содержащей только атрибут, формат и/или метку: "attribute:format:label". Например, вышеуказанная колонка "имя" также может быть указана как: "name:text:Name". "Формат" и "метка" являются необязательными. Они примут значения по умолчанию, если отсутствуют.
Использование сокращённого формата для конфигурации колонок в простых случаях будет выглядеть так:
[
'id',
'amount:currency:Total Amount',
'created_at:datetime',
]
При использовании $dataProvider с активными записями, можно отображать значения из связанных записей, например, атрибут name отношения author:
// shortcut syntax
'author.name',
// full syntax
[
'attribute' => 'author.name',
// ...
]
public array $columns = []
$dataColumnClass общедоступное свойство
Класс колонки данных по умолчанию, если имя класса не указано явно при конфигурировании колонки. По умолчанию 'yii\grid\DataColumn'.
public string $dataColumnClass = null
$emptyCell общедоступное свойство
HTML отображение, когда содержимое ячейки пустое. Это свойство используется для отображения ячеек без определённого содержимого, например, пустые ячейки подвала или фильтра.
Обратите внимание, что это не используется yii\grid\DataColumn, если элемент данных является null. В этом случае используется свойство nullDisplay свойства $formatter для обозначения пустого значения данных.
public string $emptyCell = ' '
$filterErrorOptions общедоступное свойство
Опции для отображения каждого сообщения об ошибке фильтра. Это в основном используется yii\helpers\Html::error() при отображении сообщения об ошибке рядом с каждым полем ввода фильтра.
public array $filterErrorOptions = ['class' => 'help-block']
$filterErrorSummaryOptions общедоступное свойство
Опции для отображения сводки ошибок фильтра. См. yii\helpers\Html::errorSummary() для получения дополнительной информации об указании опций.
См. также renderErrors().
public array $filterErrorSummaryOptions = ['class' => 'error-summary']
$filterModel общедоступное свойство
Модель, которая хранит данные фильтра, введённые пользователем. Когда это свойство установлено, грид включит фильтрацию по колонкам. Каждая колонка по умолчанию будет отображать поле ввода текста в верхней части, в которое пользователи могут вводить данные для фильтрации.
Обратите внимание, что для отображения поля ввода для фильтрации, колонка должна иметь свойство yii\grid\DataColumn::$attribute, установленное и атрибут должен быть активным в текущей ситуации $filterModel или иметь yii\grid\DataColumn::$filter установленным в качестве HTML кода поля ввода.
Когда это свойство не установлено (null), функция фильтрации отключена.
public yii\base\Model $filterModel = null
$filterPosition общедоступное свойство
Определяет, должны ли фильтры отображаться в гриде. Допустимые значения:
- FILTER_POS_HEADER: фильтры будут отображаться над ячейкой заголовка каждой колонки.
- FILTER_POS_BODY: фильтры будут отображаться под ячейкой заголовка каждой колонки.
- FILTER_POS_FOOTER: фильтры будут отображаться под ячейкой подвала каждой колонки.
public string $filterPosition = self::FILTER_POS_BODY
$filterRowOptions общедоступное свойство
Атрибуты HTML для элемента строки фильтра.
См. также yii\helpers\Html::renderTagAttributes() для деталей по отрисовке атрибутов.
public array $filterRowOptions = ['class' => 'filters']
$filterSelector общедоступное свойство
Дополнительный jQuery селектор для выбора полей ввода фильтра.
public string $filterSelector = null
$filterUrl общедоступное свойство
URL для возвращения результата фильтрации. yii\helpers\Url::to() будет вызван для нормализации URL. Если не задан, будет использоваться текущий action контроллера. Когда пользователь вносит изменения в любое поле фильтра, текущие данные фильтра будут добавлены в качестве параметров GET к этому URL.
public string|array $filterUrl = null
$footerRowOptions общедоступное свойство
Атрибуты HTML для строки подвала таблицы.
См. также yii\helpers\Html::renderTagAttributes() для деталей по отрисовке атрибутов.
public array $footerRowOptions = []
$formatter общедоступное свойство
Форматтер, используемый для форматирования значений атрибутов модели в отображаемые тексты. Это может быть либо экземпляр yii\i18n\Formatter, либо конфигурационный массив для создания экземпляра yii\i18n\Formatter. Если это свойство не установлено, будет использован компонент "форматтер" приложения.
public array|yii\i18n\Formatter $formatter = null
$headerRowOptions общедоступное свойство
Атрибуты HTML для строки заголовка таблицы.
См. также yii\helpers\Html::renderTagAttributes() для деталей по отрисовке атрибутов.
public array $headerRowOptions = []
$layout общедоступное свойство
Макет, определяющий, как различные разделы представления списка должны быть организованы. Следующие токены будут заменены соответствующим содержимым раздела:
-
{summary}: раздел сводки. См. renderSummary(). -
{errors}: сводка ошибок модели фильтра. См. renderErrors(). -
{items}: элементы списка. См. renderItems(). -
{sorter}: сортировщик. См. renderSorter(). -
{pager}: постраничная навигация. См. renderPager().
public string $layout = "{summary}\n{items}\n{pager}"
$options общественное свойство
Атрибуты HTML для тега контейнера представления таблицы. Элемент "tag" указывает имя тега контейнерного элемента и по умолчанию равен "div".
См. также yii\helpers\Html::renderTagAttributes() для получения подробной информации о том, как рендерятся атрибуты.
public array $options = ['class' => 'grid-view']
$rowOptions общественное свойство
Атрибуты HTML для строк тела таблицы. Это может быть либо массив, определяющий общие атрибуты HTML для всех строк тела, либо анонимная функция, которая возвращает массив атрибутов HTML. Анонимная функция будет вызываться один раз для каждой модели данных, возвращаемой $dataProvider. Она должна иметь следующий вид:
function ($model, $key, $index, $grid)
-
$model: текущая модель данных, которая рендерится -
$key: значение ключа, связанное с текущей моделью данных -
$index: индекс модели данных с нуля в массиве моделей, возвращенном $dataProvider -
$grid: объект GridView
См. также yii\helpers\Html::renderTagAttributes() для получения подробной информации о том, как рендерятся атрибуты.
public array|Closure $rowOptions = []
$showFooter общественное свойство
Определяет, отображать ли секцию подвала таблицы сетки.
public boolean $showFooter = false
$showHeader общественное свойство
Определяет, отображать ли секцию заголовка таблицы сетки.
public boolean $showHeader = true
$showOnEmpty общественное свойство
Определяет, отображать ли представление сетки, если $dataProvider не возвращает данных.
public boolean $showOnEmpty = true
$tableOptions общественное свойство
Атрибуты HTML для элемента таблицы сетки.
См. также yii\helpers\Html::renderTagAttributes() для получения подробной информации о том, как рендерятся атрибуты.
public array $tableOptions = ['class' => 'table table-striped table-bordered']
Подробное описание методов
createDataColumn() защищённый метод
Создаёт объект yii\grid\DataColumn, основанный на строке в формате "attribute:format:label".
| защищённый yii\grid\DataColumn createDataColumn ( $text ) | ||
|---|---|---|
| $text | строка |
Строка спецификаций колонки |
| return | yii\grid\DataColumn |
Экземпляр колонки |
| throws | yii\base\InvalidConfigException |
если спецификация колонки некорректна |
getClientOptions() защищённый метод
Возвращает опции для виджета JS грида.
| защищённый массив getClientOptions ( ) | ||
|---|---|---|
| return | массив |
Опции |
guessColumns() защищённый метод
Эта функция пытается определить колонки для отображения из предоставленных данных, если $columns не указаны явно.
| защищённый void guessColumns ( ) |
|---|
init() публичный метод
Инициализирует грид-вью.
Этот метод инициализирует необходимые значения свойств и создаёт объекты $columns.
| публичный void init ( ) |
|---|
initColumns() защищённый метод
Создаёт объекты колонок и инициализирует их.
| защищённый void initColumns ( ) |
|---|
renderCaption() публичный метод
Отображает элемент заголовка.
| публичный булево|строка renderCaption ( ) | ||
|---|---|---|
| return | булево|строка |
Отображённый элемент заголовка или |
renderColumnGroup() публичный метод
Отображает HTML-группу колонок.
| публичный булево|строка renderColumnGroup ( ) | ||
|---|---|---|
| return | булево|строка |
HTML-группа колонок или |
renderErrors() публичный метод
Отображает ошибки валидатора модели фильтра.
| публичный строка renderErrors ( ) | ||
|---|---|---|
| return | строка |
Результат рендеринга. |
renderFilters() публичный метод
Отображает фильтр.
| публичный строка renderFilters ( ) | ||
|---|---|---|
| return | строка |
Результат рендеринга. |
renderItems() публичный метод
Отображает модели данных для грида.
| публичный void renderItems ( ) |
|---|
renderSection() публичный метод
Отображает раздел указанного имени.
Если раздел с указанным именем не поддерживается, возвращается false.
| публичный строка|булево renderSection ( $name ) | ||
|---|---|---|
| $name | строка |
Имя раздела, например, |
| return | строка|булево |
Результат рендеринга раздела или false, если раздел с указанным именем не поддерживается. |
renderTableBody() публичный метод
Отображает тело таблицы.
| публичный строка renderTableBody ( ) | ||
|---|---|---|
| return | строка |
Результат рендеринга. |
renderTableFooter() публичный метод
Отображает подвал таблицы.
| публичный строка renderTableFooter ( ) | ||
|---|---|---|
| return | строка |
Результат рендеринга. |
renderTableHeader() публичный метод
Отображает заголовок таблицы.
| публичный строка renderTableHeader ( ) | ||
|---|---|---|
| return | строка |
Результат рендеринга. |
renderTableRow() публичный метод
Отображает строку таблицы с данной моделью данных и ключом.
| публичный строка renderTableRow ( $model, $key, $index ) | ||
|---|---|---|
| $model | смешанный тип |
Модель данных для рендеринга |
| $key | смешанный тип |
Ключ, связанный с моделью данных |
| $index | целое число |
Индекс от нуля модели данных среди массива моделей, возвращённого $dataProvider. |
| return | строка |
Результат рендеринга |
run() публичный метод
Выполняет виджет.
| публичный void run ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-grid-gridview.html