SleepingOwl Admin (SOA) - популярная админ панель на Laravel. В ней есть все, что нужно, и даже больше. Проектирование админ панели для сайта превращается в песню, если знать, как правильно ее готовить. В этой статье мы опишем рабочую методику и рекомендации, как быстро освоиться с этой дивной и удобной библиотекой.
Для начала хочется отметить, что SOA по сути своей является фреймворком для построения интерфейсов. И чтобы успешно это делать, Вам достаточно знать, как быстро в документации найти нужный компонент для вставки в секцию (шаблон страницы). Простота ее использования заключается в том, что достаточно одной строчки кода из документации ( к примеру: AdminFormElement::text("lastname", "Фамилия")) - чтобы в админке появилось поле для редактирования значений Фамилии пользователя из вашей базы данных. Т.е. вам, как разработчику, не придется обрабатывать передачу данных формы, чистить ее, придумывать обработку на пустоту и т.п. - все это делает за вас SOA. Все, что Вам остается, найти нужный кусок кода из документации и сделать страницу в админке юзер-френдли (интуитивно понятной) для наполнителя сайта. Magic!
1 Пользуйтесь ресурсами разработчиков SOA
На официальном сайте SOA есть ссылки на все необходимые и достаточные материалы: https://sleepingowladmin.ru/
Это прежде всего:
- Документация - SOA не настолько популярна, чтобы пробовать гуглить конкретный вопрос. В документации есть поиск - пользуйтесь им, очень быстро и удобно находится нужный материал
- Демо - в любой момент можно ознакомиться с возможностями админ панели
- Исходный код демо - по коду для демо вы легко можете найти поиском по проекту в вашей среде разработки (к примеру, PHPStorm, команда Find in path), как именно используется компонент
- Телеграм канал - если возникли сложности с внедрением компонента - всегда можно попросить помощи в tg канале (в нем оперативно отвечают и за вопросы не бьют)
2 Генерация CRUD для модели
Секция в терминологии SOA - раздел в админке, в котором модератор сайта может просматривать, редактировать, создавать и удалять записи к таблице из БД - все, что нужно для CRUD. Все эти настройки для раздела размещены в одном файле - Секции.
Процесс создания секции описан по ссылке.
Если коротко по шагам на примере модели Manager:
- Генерируем через артизан модель Manager, миграцию для создания таблицы и сиддер к ней для заполнения тестовыми данными
- Генерируем секцию Managers процессом, указанным выше по ссылке
- Корректируем название раздела в админке, иконку и методы onDisplay и onEdit в нашей новой секции Managers
- Проверяем, что все работает 😉
3 Подключение своих стилей
Существует несколько вариантов, один из них - подключить в app/Providers/AdminSectionsServiceProvider.php
Изменения файла и код после подключения своих стилей показаны ниже:
use SleepingOwl\Admin\Contracts\Template\MetaInterface;
..
$this->app->call( [ $this, 'registerMediaPackages' ] );
..
/**
* @param MetaInterface $meta
*/
public function registerMediaPackages( MetaInterface $meta ) {
$meta->addCss('custom', asset('css/admin/custom.css'));
}
4 Добавление нового раздела в SleepingOwl Admin
В видео ниже показано, как добавить CRUD в админке для Ларавел (генерация секции для SleepingOwlAdmin и настройка табличной части и формы для своей модели):