Столбцы списка

Столбцы списка объявляются посредством метода 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;
}