Ещё пять лет назад типовая админка отнимала недели на CRUD-экраны. Filament 4 поверх Laravel 12 сокращает эту работу до конфигурации.

Anatomy ресурса#

Один класс Resource описывает форму, таблицу и — через Schemas — сложные составные поля вроде блочного редактора статей.

app/Filament/Resources/Posts/PostResource.php
class PostResource extends Resource
{
    protected static ?string $model = Post::class;

    public static function form(Schema $schema): Schema
    {
        return $schema->components([
            PostForm::make(),
        ]);
    }
}
  1. Модель и миграции — как в обычном Laravel-проекте.
  2. Policy определяет, кто видит ресурс и какие действия доступны.
  3. Schema/Table классы описывают форму и таблицу декларативно.
  4. Actions добавляют кастомную логику там, где конфигурации не хватает.

Авторизация — не декорация

Policy проверяется и в UI, и при прямом обращении к модели — скрыть кнопку недостаточно, если политика не защищает сам метод.

ЗадачаРешение из коробкиНужен кастом
Сортировка таблицыданет
Блочный редактор контентачастично (Builder)да, доменные блоки
2FAда (App Authentication)нет

Итог: Filament экономит время именно там, где раньше терялись недели — на однотипных CRUD-экранах. Домен-специфичную логику всё равно пишете вы.

Ключевые выводы

  • Filament 4 Resource — это декларативное описание формы, таблицы и политики доступа в одном классе.
  • Policy-классы Laravel и авторизация Filament работают вместе без дублирования правил.
  • Кастомные Actions нужны реже, чем кажется — сначала стоит проверить встроенные.
  • Тесты на уровне Resource дешевле, чем ручная проверка каждого релиза.