Столбцы списка
Столбцы списка объявляются посредством метода column()
, выполняющего добавление столбца списка.
Выводится информация в список на основании полученных нами данных из модели и переданных в список
посредством метода view($rows)
, который отвечает за отрисовку списка.
Рассмотрим подробнее как работать со столбцами списков:
$list->column(
'column_id', # ID столбца (соответствует названию в базе данных)
'title', # название столбца
'100' # ширина столбца
# $extra дополнительные параметры
[ ... ],
# string|callable $render дополнительная обработка содержимого поля
function(){}
);
Простой вывод содержимого когда column_id
соответствует названию поля в базе данных:
$list
->column('id', 'ID', 50)
->column('title', 'Название', 200);
Обработка содержимого столбца
Часто значение в столбце требует дополнительной подготовки, для этого следует указать тип столбца COLUMN_TYPE_CUSTOM
и передать callback отвечающий за подготовку данных.
Например необходимо данные name и surname объединить и выводить в одном столбце author:
$list
->column('author', 'Автор', 200, [
'type' => $list::COLUMN_TYPE_CUSTOM,
'align' => $list::COLUMN_ALIGN_LEFT,
], function($value, $item, $opts){
// формируем содержимое на основе данных name и surname
return $item['name'] . ' ' . $item['surname'];
});
Обратим внимание, мы использовали один из дополнительных пераметров 'align' => $list::COLUMN_ALIGN_LEFT
, выравнивающий содержимое столбца по левому краю. По умолчанию выравнивание выполняется по-центру.
Cортировка по столбцам
Также можно выполнять сортировку по столбцам, когда необходимо менять направленность записей на странице. Задается она в качестве дополнительных параметров:
$list->column('created', 'Дата создания', 150, [
'order' => $list::COLUMN_ORDER_DESC,
]);
Обрабатывается сортировка в методе контроллера заданием порядка сортировки списка в модели.
switch ($this->input->postget('order')) {
// ...
case 'created-desc':
$orderBy = 'created DESC';
break;
case 'created-asc':
$orderBy = 'created ASC';
break;
}