</>
maximorum.com

Laravel Filament: як зібрати повноцінну адмін-панель за день і не переписувати її через рік

D

Адмін-панель — не опція, а частина продукту

Більшість замовників не замислюються про адмін-панель, доки не отримують сайт без неї. Тоді починається: «нам потрібна таблиця замовлень», «додайте фільтр по даті», «де кнопка для CSV-експорту?». Кожен запит — окремий тікет, окремий спринт. Laravel Filament вирішує цю проблему інакше: ви отримуєте повноцінний адміністративний інтерфейс як частину базової поставки проєкту.

Laravel Filament адмін-панель з таблицею замовлень та інтеграцією Ukrainian payment API

Що таке Filament і чому він виграє у самописних панелей

Filament — офіційний екосистемний пакет Laravel для швидкої побудови адмін-панелей, CRUD-інтерфейсів і форм на основі ваших Eloquent-моделей. Він не генерує статичний код — він читає ваші моделі, зв'язки та правила валідації в реальному часі. Змінили модель — інтерфейс підхоплює зміни без правок у шаблонах.

Самописна панель на Bootstrap або Vue коштує 40–80 годин розробки, а потім ще 5–10 годин на кожен новий розділ. Filament скорочує перший цикл до 8–16 годин, а кожен наступний розділ — до 1–3 годин.

Реальний приклад: таблиця замовлень з фільтрами

Для платформи з сутностями Order, Product, Customer, Delivery, Payment ви описуєте Filament Resource:

class OrderResource extends Resource
{
    protected static ?string $model = Order::class;

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('id')->sortable(),
                TextColumn::make('customer.name')->searchable(),
                BadgeColumn::make('status'),
                TextColumn::make('total')->money('UAH'),
            ])
            ->filters([
                SelectFilter::make('status'),
                DateRangeFilter::make('created_at'),
            ])
            ->actions([ExportAction::make()]);
    }
}

Менеджер отримує: таблицю з пагінацією, пошук по імені клієнта, фільтр по статусу і датах, кнопку CSV-експорту. Час написання — близько 45 хвилин. Час на самопис аналогу — 12–16 годин.

Інтеграція з Nova Poshta і LiqPay прямо в панелі

Filament підтримує кастомні Actions — кнопки з модальними вікнами та API-викликами. Це означає, що менеджер може натиснути «Створити ТТН» прямо у картці замовлення, і панель викличе Nova Poshta API, отримає номер накладної та збереже його в базу — без переходу на сторонній сайт.

Те саме стосується Monobank і LiqPay: статус платежу підтягується кнопкою «Перевірити оплату», яка звертається до API і оновлює поле payment_status в Eloquent-моделі.

Ролі та дозволи без окремого модуля

Filament нативно інтегрується з spatie/laravel-permission:

  • Адміністратор — бачить усі розділи.
  • Менеджер — тільки замовлення та клієнтів.
  • Логіст — лише доставки і статуси ТТН.

Налаштування займає 30 хвилин, не окремий модуль і не окремий спринт.

Чому не Laravel Nova?

Nova — комерційний продукт Tailwind Labs ($99–$299/рік на проєкт). Filament — open-source з MIT-ліцензією. Для більшості бізнес-систем функціональність Filament достатня або перевищує Nova. MaxiMoruM використовує Filament як стандарт для нових Laravel-проєктів, де потрібна адміністративна панель.

Час і вартість впровадження

Для нового проєкту Filament входить у базову конфігурацію Laravel без доплат. Для існуючого проєкту на Laravel 10+ міграція займає 1–2 дні: встановлення пакету, опис ресурсів, тестування прав доступу.

Якщо ваша команда зараз вручну редагує базу або чекає розробника щоразу, коли потрібно змінити статус замовлення — це коштує більше, ніж один день інтеграції.

→ Отримайте адмін-панель, яка реально працює для вашого бізнесу: maximorum.com