Столбцы
Создает новый столбец типа {type}:
Column::{type}('{field name}')Поддерживаемые типы
Заголовок столбца
Вы можете задать заголовок столбца следующим кодом:
…->label('My Column Header')Создание собственного столбца
Вы можете зарегистрировать свой класс в качестве столбца:
Column::register('yesNo', \Acme\YesNoColumn::class)Ваш класс столбца должен расширять SleepingOwl\Admin\Columns\Column\BaseColumn (если вам не нужно получать значение из объекта по имени) или SleepingOwl\Admin\Columns\Column\NamedColumn (в противном случае).
class YesNoColumn extends SleepingOwl\Admin\Columns\Column\NamedColumn
{
    public function render()
    {
        $params = [
            'value'  => $this->getValue($this->instance, $this->name()),
        ];
        return view('my-view', $params);
    }
}Использование в конфигурации модели:
$display->columns([
    Column::yesNo(),
]);Запрет на сортировку по столбцу
Column::string('my_field')->orderable(false)Дополнения к столбцам
Дополнение Filter
Column::filter('{filter_alias}')->model('App\MyModel')->value('{field to grab filter value from}')Это дополнение добавляет ссылку на фильтр в каждую ячейку. Вы можете опустить указание модели (model()) если фильтр принадлежит текущей модели.
Пример:
Column::string('category.title')->label('Category')->append(
    Column::filter('category_id')
)Дополнение Url
Column::url('{field to grab url from}')Это дополнение добавляет ссылку в каждую ячейку. Ссылка будет извлечена из указанного поля модели.
Пример:
Column::string('url', 'Url')->append(
    Column::url('full_url')
)String
Содержимое ячейки будет простым значением поля из вашей модели или одной из связанных моделей.
Column::string('{field name}')Название поля
Название поля может быть одним из следующих:
- 
Название поля из вашей модели (из базы данных или используемых при помощи мутаторов). Column::string('title') Column::string('url')
- 
Название поля из связанных моделей Column::string('category.title') // category() creates belongs-to relation Column::string('city.state.title') // you can use nested relations
Lists
Содержимое ячейки будет список связанных моделей. Используется для связей many-to-many.
Column::lists('categories.title')Отображает список всех заголовков категорий, связанных с текущей записью.
categories() должен определять связь belongs-to-many в данном случае.
Count
Содержимое ячейки будет количество связанных записей. Используется со связями has-many.
Column::count('images')Column::count('images')->append(
    Column::filter('school_id')->model('App\SchoolImage')
)images() должен определять связь has-many в данном случае.
Image
Содержимым ячейки будет миниатюра изображения.
Column::image('photo')Поле photo должно содержать полный урл изображения либо путь относительно public директории.
Столбцы с изображениями не могут быть сортируемыми.
Datetime
Содержимым ячейки будет дата или время.
Column::datetime('{field}')Формат даты и времени
Формат по умолчанию определен в конфиге параметром datetimeFormat. Вы можете переопределить его при помощи метода format($format).
Column::datetime('created_at')->format('d.m.Y H:i:s')
Column::datetime('created_at')->format('m/d/Y g:i')Order
Содержимым ячейки будут стрелки вверх и вниз для сортировки моделей.
Column::order()Ваша модель должна подключать трэйт use SleepingOwl\Admin\Traits\OrderableModel; для использования данного столбца. Ваша модель должна содержать целочисленное поле, представляющее собой порядок записей. Создайте метод getOrderField() в вашей модели, который возвращает название этого поля:
public function getOrderField()
{
    return 'order';
}Пример модели
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
    use SleepingOwl\Admin\Traits\OrderableModel;
    public function getOrderField()
    {
        return 'order';
    }
}Action
Содержимым ячейки будет кнопка с произвольным действием.
Column::action('{name}')Стиль кнопки
Вы можете указать класс иконки для использования (из FontAwesome):
Column::action('show')->icon('fa-globe')Доступно 2 стиля: short и long
 # Это создаст кнопку без надписи, только иконка. Заголовок будет всплывать при наведении.
Column::action('show')->label('Label')->icon('fa-globe')->style('short')
 # Это создаст кнопку с иконкой и заголовком.
Column::action('show')->label('Label')->icon('fa-globe')->style('long')Важно: стиль по умолчанию — long без иконки.
Target кнопки
Вы можете указать target для кнопки:
Column::action('show')->label('Column Label')->value('Button Text')->url('http://test.com/:id')->target('_blank')URL кнопки
Вы можете указать url для кнопки, :id будет заменен на id строки, в которой расположена кнопка:
Column::action('show')->label('Label')->url('http://test.com/:id')или вы можете указать функцию для генерация url`а:
Column::action('show')->label('Label')->url(function ($instance)
{
    return URL::route('my-route', [$instance->id]);
})Произвольное действие
Используйте метод ->callback() для задания произвольного действия:
Column::action('show')->label('Label')->callback(function ($instance)
{
    # Any code you want
})Checkbox
Столбец checkbox используется для осуществления массовых действий.
Column::checkbox()Подробнее смотрите раздел массовые операции.
Custom
Этот столбец использует ваше замыкание для поления значения ячейки.
Column::custom()->label('Published')->callback(function ($instance)
{
    return $instance->published ? '✓' : '-';
}),