Конфигурация моделей SleepingOwl Admin должны быть расположены в директории bootstrapDirectory (по умолчанию: app/admin).

Вы можете хранить конфигурацию моделей в одном файле или разделить на несколько по желанию.

Ниже приведен пример того, как может выглядеть конфигурация модели:

Admin::model('App\Contact2')->title('Contact')->alias('contacts2')->display(function ()
{
    $display = AdminDisplay::table();
    $display->with('country', 'companies');
    $display->filters([
        Filter::related('country_id')->model('App\Country'),
    ]);
    $display->columns([
        Column::image('photo')->label('Photo'),
        Column::string('fullName')->label('Name'),
        Column::datetime('birthday')->label('Birthday')->format('d.m.Y'),
        Column::string('country.title')->label('Country')->append(Column::filter('country_id')),
        Column::lists('companies.title')->label('Companies'),
    ]);
    return $display;
})->createAndEdit(function ()
{
    $form = AdminForm::form();
    $form->items([
        FormItem::columns()->columns([
            [
                FormItem::text('firstName', 'First Name')->required(),
                FormItem::text('lastName', 'Last Name')->required(),
                FormItem::text('phone', 'Phone'),
                FormItem::text('address', 'Address'),
            ],
            [
                FormItem::image('photo', 'Photo'),
                FormItem::date('birthday', 'Birthday')->format('d.m.Y'),
            ],
            [
                FormItem::select('country_id', 'Country')->model('App\Country')->display('title'),
                FormItem::textarea('comment', 'Comment'),
            ],
        ]),
    ]);
    return $form;
})->delete(null);

Связь с моделью

Admin::model(\App\MyModel::class)

Если вы используете PHP версии ниже 5.5, можете использовать строковое представление:

Admin::model('App\MyModel')

Заголовок

->title('My Model Title')

Заголовок модели и текст элемента меню.

Указание Alias

->alias('districts')

Alias будет использован в url`ах. По умолчанию alias — множественная форма названия модели в нижнем регистре.

Указание типа вывода списком

->display(function ()
{
    // specify model display here
})

Подробнее смотрите в разделе списки.

Указание форм создания и редактирования

Вы можете указать одну форму для создания и редактирования:

->createAndEdit(function ()
{
    // specify model create or edit form here
})

Или разные формы:

->create(function ()
{
    // create form
})
->edit(function ()
{
    // edit form
})

Подробнее смотрите в разделе формы.

Запрет на создание новых записей

->createAndEdit(function ($id)
{
    if (is_null($id))
    {
        return null;
    }
    ...
})

Запрет на редактирование записей

->createAndEdit(function ($id)
{
    if ( ! is_null($id))
    {
        return null;
    }
    ...
})

Запрет на удаление

Вы можете отключить функцию удаления записей:

->delete(null)

Запрет на восстановление

Вы можете отключить функцию восстановления записей (в моделях с soft-delete):

->restore(null)