Колонки

Rock.Cms поддерживает несколько типов колонок для вывода в списке ресурсов.

Колонки добавляются в методе columns.

public function columns(): array
{
    return [
        SelectColumn::make($this)
            ->addClass('text-center'),
        Column::make('id', 'ID')
            ->sortable(),
        EditLinkColumn::make('title', 'Заголовок')
            ->sortable(),
        ActiveColumn::make('active', 'Активность')
            ->addClass('text-center')
            ->sortable(),
        Column::make('created_at', 'Дата'),
        ActionColumn::make('Действия')
            ->addClass('text-center'),
    ];
}

Типы колонок

Простой текст

Данный тип выводит без форматирования поле Eloquent модели.

use WebVovan\RockCms\View\Components\Column;
...

Column::make('id', 'ID')

Ссылка на редактирования ресурса

Данный тип оборачивает поле Eloquent модели в ссылку, которая ведет на страницу редактирования ресурса.

use WebVovan\RockCms\View\Components\EditLinkColumn;
...

EditLinkColumn::make('title', 'Заголовок'

Иконка активности

Данный тип показывает иконки активности в зависимости от булева значения поля Eloquent модели.

use WebVovan\RockCms\View\Components\ActiveColumn;
...

ActiveColumn::make('active', 'Активность')

Выбор списка ресурсов

Данный тип добавляет чекбоксы для выбора нескольких ресурсов в списке для их одновременного удаления.

use WebVovan\RockCms\View\Components\SelectColumn;
...

SelectColumn::make($this)

Действия над ресурсом

Данный тип выводит кнопки для удаления, просмотра и редактирования ресурса.

use WebVovan\RockCms\View\Components\ActionColumn;
...

ActionColumn::make('Действия')

По умолчанию выводятся кнопки для редактирования и удаления.

Управлять показом кнопок можно с помощью свойств:

class PostList extends ResourceListComponent
{
    // Класс ресурса
    public string $resourceClass = Post::class;

    // Кнопка редактирования ресурса
    public bool $activeEditButton = true;
    
    // Кнопка удаления ресурса
    public bool $activeDeleteButton = false;
    
    // Кнопка просмотра ресурса
    public bool $activeShowButton = true;
    
    ...
}

Замена текста

Заменяет текст из поля на другое значение

ReplaceColumn::make('author', 'Автор')
    ->setReplaceItems([
        'admin' => 'Администратор',
        'manager' => 'Менеджер',
    ])

Дополнительные возможности

Для каждой колонки в таблице можно добавить возможность сортировки, вызвав метод sortable.

EditLinkColumn::make('title', 'Заголовок')->sortable(),

Для добавления пользовательского класса используйте метод addClass.

ActionColumn::make('Действия')->addClass('text-center'),

Last updated