Устанавливаем шаблон админ-панели 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 — остальные поля нужно будет добавить в ресурс самостоятельно.

Итог

Мы установили админку. Можно создавать ресурсы и наполнять админку функциональностью.

Всю остальную информацию берём из документации и из гугла.

https://nova.laravel.com/docs