laravel
Начиная с Laravel 12, Sail перестал быть «вариантом по умолчанию» в основном разделе установки на главной странице документации. Вместо него новичкам теперь активно предлагают Herd.
Sail никуда не делся
Несмотря на то, что его «спрятали» из основного гайда по установке, он всё еще:
- Официально поддерживается: У него есть своястраница в документации.
- Обновляется: Пакет регулярно получает обновления для поддержки новых версий PHP (8.4, 8.5) и Laravel (13).
- Доступен: Команда
curl -s "https://laravel.build/example-app" | bashпо-прежнему работает и разворачивает проект именно на базе Sail.
Boost
php artisan boost:installcomposer require laravel/boost --dev
Filament
composer require filament/filament -Wphp artisan filament:install --panelsПоскольку вы используете Herd, вам не нужно писать sail artisan. Пишите просто php artisan, так как Herd использует PHP, установленный прямо в системе.
php artisan migratephp artisan make:filament-userчто за зверь?
Ресурсы (Resources)
Это «сердце» Filament. Ресурс связывает конкретную Eloquent модель (например, User или Post) с интерфейсом админки. Когда ты создаешь ресурс (php artisan make:filament-resource Post), Filament создает класс, где ты описываешь:
- Form: как выглядит создание/редактирование.
- Table: какие колонки видны в списке.
- Pages: страницы списка, создания и правки.
Виджеты (Widgets) — Дашборд
За дашборд и графики отвечают виджеты.
- Колонки: В Filament используется 12-колоночная сетка (как в Tailwind). В коде виджета или формы ты указываешь
->columnSpan(2)или->columns(3). - Например, если ты хочешь, чтобы график занимал всю ширину, ты пишешь
->columnSpan('full').
Модальные окна (Modals)
В Filament модалки — это часть «Действий» (Actions). Тебе не нужно писать JS. Если ты хочешь, чтобы при нажатии на кнопку «Удалить» или «Редактировать» открылось окно, ты просто конфигурируешь Action в ресурсе. Filament сам отрендерит Livewire-компонент внутри модалки.
2. База данных: когда создавать таблицы?
Важный момент: Filament НЕ создает таблицы в БД за тебя автоматически. Он «смотрит» на уже существующие таблицы.
Твой рабочий процесс (Workflow):
- Сначала миграция: Ты создаешь обычную Laravel миграцию (
php artisan make:migration create_posts_table), описываешь там поля ($table->string('title')) и запускаешьphp artisan migrate. - Потом модель: Убеждаешься, что модель
Postсоздана. - Затем ресурс: Запускаешь
php artisan make:filament-resource Post.
Как Filament облегчает жизнь (Магия --generate)
Чтобы не добавлять каждое поле вручную в код ресурса, используй флаг генерации:
Bashphp artisan make:filament-resource Post --generate
Что это даст? Filament просканирует твою таблицу posts в БД и сам напишет код для формы и таблицы. Если в БД поле text, он поставит TextInput, если boolean, он поставит Toggle. Тебе останется только подправить дизайн.
3. Управление полями и сеткой (Layout)
Внутри функции form() ты управляешь тем, как поля лежат на странице.
- Секции (Section): Группируют поля в блоки с заголовком.
- Сетка (Grid): Позволяет делить форму на колонки.PHP
Forms\Components\Section::make('Контент')
->schema([Forms\Components\TextInput::make('title')->columnSpan(2), // Займет 2 колонкиForms\Components\DateTimePicker::make('published_at')->columnSpan(1), // Займет 1
])->columns(3), // Вся секция делится на 3 колонки
Резюме:
- БД всегда первична. Сначала миграция — потом Filament.
- Ресурс — это мост между таблицей БД и сайтом.
--generate— твой лучший друг, чтобы не прописывать 20 полей руками.- Сетка управляется через
columns()иcolumnSpan().