Подключение плагина в Filament
Давайте подключим плагин. Он добавит в меню страницу отчёта на /admin/report, а провайдер панели получит одну строку с вызовом фабрики.
Класс BlogPlugin.php
реализует контракт
Plugin.
Метод register
передаст панели
страницу ReportPage:
<?php
namespace App\Filament\Plugins;
use App\Filament\Pages\ReportPage;
use Filament\Contracts\Plugin;
use Filament\Panel;
class BlogPlugin implements Plugin
{
public function getId(): string
{
return 'blog';
}
public static function make(): static
{
return app(static::class);
}
public function register(Panel $panel): void
{
$panel->pages([
ReportPage::class,
]);
}
public function boot(Panel $panel): void
{
}
}
?>
Страница ReportPage
наследует Page
и держит адрес
report
в свойстве $slug.
Откроем AdminPanelProvider.php
и добавим плагин
рядом с path
и login:
<?php
namespace App\Providers\Filament;
use App\Filament\Plugins\BlogPlugin;
use Filament\Panel;
use Filament\PanelProvider;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->plugin(BlogPlugin::make());
}
}
?>
Подключите класс, который добавляет в меню пункт отчёта.