Nova выглядит как мечта ленивого PHP-шника: подключил пакет — и админка готова. На практике, это реально экономит время, но иногда ты понимаешь, что без мелких костылей и магии Eloquent не обойтись.
Laravel Nova — это официальный пакет Laravel, который строит административную панель поверх твоих моделей.
Ты получаешь CRUD для всего, что есть в базе, без ручного писания интерфейса. Но «без писания интерфейса» не значит, что всё заработает идеально — тебе всё равно придётся разбираться с полями, фильтрами и кастомными действиями.
Установка
composer require laravel/nova
php artisan nova:install
Nova добавит свои ресурсы и создаст конфиг. Всё просто, как заварить кофе.
Создаём ресурс: пример с пользователями
php artisan nova:resource User
Вылетает файл app/Nova/User.php — тут ты указываешь, какие поля показывать в админке:
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\Email;
use Laravel\Nova\Fields\DateTime;
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Name'),
Email::make('Email'),
DateTime::make('Created At')->onlyOnDetail(),
];
}
Хочешь добавить фильтр по активности пользователей — пожалуйста:
use App\Nova\Filters\ActiveUsers;
public function filters(Request $request)
{
return [
new ActiveUsers,
];
}
Или действие «Отправить письмо всем выбранным» — Nova позволяет создавать свои Actions:
php artisan nova:action SendEmailToUsers
Плюсы и минусы
Плюсы:
- Быстро настраивается CRUD.
- Интеграция с Eloquent, политики Laravel работают сразу.
- Можно расширять: фильтры, кастомные поля, действия.
Минусы:
- Иногда приходится ковыряться с кастомными полями, если стандартного нет.
- Производительность — если у тебя куча записей, Nova может тормозить.
- Дизайн «как есть» — если нужен свой стиль, придётся плясать с CSS и Vue.
Итог
Nova реально ускоряет создание админки для Laravel, но чудес не ждите. Она экономит время на базовые вещи, а всё остальное — как обычно, костыли, Eloquent и иногда нервные клетки.
Nova — это как готовый бургер: вкусно и быстро, но если хочешь «по-своему» — придётся добавить соус самому.
0 комментариев