> For the complete documentation index, see [llms.txt](https://web-vovan.gitbook.io/rock-cms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://web-vovan.gitbook.io/rock-cms/ispolzovanie/vyvod-spiska-resursov/kolonki.md).

# Колонки

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

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

```php
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 модели.

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

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

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

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

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

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

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

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

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

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

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

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

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

SelectColumn::make($this)
```

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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