Своя страница ресурса в Filament
Давайте добавим свою страницу ресурса. Кроме списка и правки нужен экран только для чтения: превью текста поста. Он откроется /admin/posts/1/preview для выбранной записи.
Класс страницы лежит в каталоге
ресурса и наследует Page
из пакета. Свойство $resource
связывает страницу с
PostResource.php, свойство
$view указывает шаблон:
<?php
namespace App\Filament\Resources\Posts\Pages;
use App\Filament\Resources\Posts\PostResource;
use Filament\Resources\Pages\Page;
class Preview extends Page
{
protected static string $resource = PostResource::class;
protected static string $view = 'filament.resources.posts.pages.preview';
}
?>
В шаблоне preview.blade.php
выведем поля записи так, как
нужно для просмотра. Маршрут
регистрируем в методе
getPages ресурса:
<?php
namespace App\Filament\Resources\Posts;
use App\Filament\Resources\Posts\Pages\Preview;
use App\Models\Post;
use Filament\Resources\Resource;
class PostResource extends Resource
{
protected static ?string $model = Post::class;
public static function getPages(): array
{
return [
'preview' => Preview::route('/{record}/preview'),
];
}
}
?>
Filament подставит открытую
запись в сегмент {record}
адреса. Ссылку на превью можно
добавить в действия строки списка
или на странице правки.
Добавьте у работника отдельную страницу просмотра досье, кроме списка и правки.