Виджет на странице ресурса в Filament
Давайте поставим виджет на странице ресурса. Над таблицей постов удобно видеть короткую цифру или итог, не листая строки. Список по-прежнему открывается /admin/posts, виджет рисуется в шапке этой страницы.
На классе страницы списка
переопределяют метод
getHeaderWidgets и возвращают
класс виджета сводки:
<?php
namespace App\Filament\Resources\Posts\Pages;
use App\Filament\Resources\Posts\PostResource;
use App\Filament\Resources\Posts\Widgets\PostsOverview;
use Filament\Resources\Pages\ListRecords;
class ListPosts extends ListRecords
{
protected static string $resource = PostResource::class;
protected function getHeaderWidgets(): array
{
return [
PostsOverview::class,
];
}
}
?>
Сам виджет наследует
StatsOverviewWidget.
В методе getStats зададим
одну карточку с подписью и числом:
<?php
namespace App\Filament\Resources\Posts\Widgets;
use Filament\Widgets\StatsOverviewWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
class PostsOverview extends StatsOverviewWidget
{
protected function getStats(): array
{
return [
Stat::make('Posts', 12),
];
}
}
?>
Число в примере статичное; в рабочем коде его возьмут из запроса к модели поста. Виджет обновится при каждой загрузке страницы списка.
Покажите над списком работников короткую сводку с числом.