Ресурсы
Просмотр записи
Детальная страница записи в режиме только для чтения (Infolist)
Infolist — это схема детальной страницы записи в режиме «только чтение». В отличие от формы, у него нет полей ввода и валидации, поэтому он дешевле и позволяет показать данные так, как удобно читать: с дружелюбными подписями, панелями, вычисляемыми значениями и предпросмотром контента.
Если Infolist не объявлен, детальная страница строится из обычных полей ресурса (fields()).

Подключение
Infolist выносится в отдельный класс-схему и указывается в ресурсе через статическое свойство $infolist:
app/Frame/Resources/PageResource.php
class PageResource extends Resource
{
public static ?string $infolist = PageInfolistSchema::class;
}
Класс-схема
Схема наследуется от Frame\Laravel\Schemas\Infolist и реализует fields():
app/Frame/Schemas/PageInfolistSchema.php
use Frame\Laravel\Schemas\Infolist;
use Illuminate\Database\Eloquent\Model;
class PageInfolistSchema extends Infolist
{
public function fields(FrameRequest $request): array
{
return [
Panel::make('Обзор страницы', [
Text::make('title', 'Заголовок'),
Text::make('slug', 'URL-адрес'),
// Вычисляемое значение: колонки blocks_count нет, оно
// выводится на лету.
Text::make('blocks_count', 'Блоков в контенте')
->resolveUsing(fn(FrameRequest $r, Model $model): int => count(
json_decode((string) ($model->content ?? '[]'), true) ?: [],
)),
])->icon('tabler-file-text')->asTable(),
];
}
}
Возможности
- Панели группируют записи; поддерживают
->icon()и табличную раскладку->asTable()(значения выводятся как строки таблицы «подпись → значение»). - Вычисляемые записи — через
->resolveUsing(); реальной колонки в БД не требуется. - Builder в Infolist рендерит сохранённые блоки как панели в режиме просмотра (см. Builder).
Infolist на дашборде
Карточка InfolistCard встраивает детальный Infolist любой записи прямо в дашборд — без отдельного компонента.
use Frame\Laravel\Cards\InfolistCard;
InfolistCard::make('pages', $pageId, 'Карточка страницы');
Параметры: ключ ресурса, идентификатор записи и (необязательно) заголовок карточки.