Провайдер панели в Filament
Давайте разберём провайдер панели.
При установке Filament создаёт
класс AdminPanelProvider.
Это точка входа: Laravel загружает
провайдер, а тот описывает,
как устроена панель приложения.
Её адрес -
/admin.
В провайдере задают идентификатор панели, адрес в браузере, нужна ли отдельная страница входа и где искать ресурсы, страницы и виджеты в коде приложения. Без этой настройки Filament не знает, по какому URL открывать админку и какие классы подключать.
Панель помечена как панель
по умолчанию, её идентификатор
- admin, а открывается
она по адресу /admin.
Вызов метода login включает
страницу входа для этой панели.
Три вызова с префиксом discover
говорят Filament искать классы
в каталогах ресурсов, страниц
и виджетов. Когда в каталоге
ресурсов появится класс,
панель подхватит его сама,
без ручного перечисления
в провайдере.
Откроем AdminPanelProvider.php
и посмотрим на метод panel:
<?php
namespace App\Providers\Filament;
use Filament\Panel;
use Filament\PanelProvider;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets');
}
}
Откройте провайдер своей панели
и убедитесь, что ресурсы, страницы
и виджеты ищутся в каталоге
Filament вашего приложения.