Устанавливаем шаблон админ-панели Laravel Nova 4 в проект на Laravel 10.
Почему Nova?
Это лучший шаблон для Laravel из тех что я видел. Это коммерческий продукт, поэтому у авторов Nova есть ресурсы на его поддержку и развитие.
Стоит немало, но сэкономленное время окупается с лихвой.
Благодаря этому шаблону я могу делать админ-панели очень быстро. В среднем от двух дней до недели на полноценную админку, если проект несложный.
Официальная инструкция
Ссылка на официальную инструкцию по установке.
Для моих задач официальной инструкции недостаточно, поэтому я привожу не только шаги из неё но и дополняю своими.
https://nova.laravel.com/docs/4.0/installation.html#installing-nova-via-composer
1. Оплачиваем Nova
Важно!
Приступая к установке вы уже должны иметь оплаченный лицензионный ключ.
Бесплатно установить Nova нельзя.
После покупки на ваш Email придёт ключ лицензии.
2. Ставим Nova через Композер
У нас есть проект на Laravel 10. Поставим в него Nova 4.
Подключаем репозиторий Nova.
composer config repositories.nova '{"type": "composer", "url": "https://nova.laravel.com"}' --file composer.json
При следующем шаге, композер запросит логин и пароль.
Логин это наш Email на сайте nova.laravel.com, пароль это License Key нашей лицензии.
composer require "laravel/nova" "~4.0"
composer update --prefer-dist --ignore-platform-req=ext-zip
Дальше предложит сохранить пароль в файле auth.json
, разрешаем ему это сделать.
php artisan nova:install
php artisan migrate
Прописываем лицензионный ключ Nova в .env
:
NOVA_LICENSE_KEY=...
3. Открываем доступ
Открываем доступ в админку для всех авторизованных пользователей.
app/Providers/NovaServiceProvider.php
protected function gate()
{
Gate::define('viewNova', function ($user) {
// Любой пользователь сайта может зайти в личный кабинет.
return true;
// return in_array($user->email, [
// //
// ]);
});
}
4. Устанавливаем локализацию
https://github.com/coderello/laravel-nova-lang
composer require coderello/laravel-nova-lang --ignore-platform-req=ext-zip
php artisan nova-lang:publish ru
Выставляем локализацию в конфиге /config/app.php
'locale' => 'ru',
5. Открываем сайт
Теперь админка будет открываться по адресу https://your.site/nova
.
Заменить nova
на что-то другое, например admin
или lk
можно в настройках, в файле /config/nova.php
.
6. Создаём ресурсы
Для того чтобы админка наполнилась функциональностью, нужно привязать к ней ресурсы (Nova/Resource
).
Эти ресурсы в общем случае являются отображением моделей Eloquent вашего приложения на пользовательский интерфейс.
То есть, допустим, у вас есть Eloquent модель Order
.
Вы создаёте ресурс:
php artisan nova:resource Order
Теперь создан класс ресурса Nova: app/Nova/Order
, который в свою очередь привязан к Eloquent модели app/Models/Order
.
Создав такой класс ресурса, мы тем самым сообщили движку что желаем выводить списки заказов в админке.
Зайдя в админку мы сразу увидим список заказов.
Впрочем, от заказов сначала будет отображаться только поле ID
— остальные поля нужно будет добавить в ресурс самостоятельно.
Итог
Мы установили админку. Можно создавать ресурсы и наполнять админку функциональностью.
Всю остальную информацию берём из документации и из гугла.