Infolist - схема для перегляду даних запису у вигляді «підпис - значення». Вона використовується на сторінці перегляду ресурсу (ViewRecord), у модальних вікнах ViewAction, у relation managers.
use Filament\Infolists\Components\IconEntry;
use Filament\Infolists\Components\RepeatableEntry;
use Filament\Infolists\Components\TextEntry;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
public static function infolist(Schema $schema): Schema
{
return $schema
->components([
Section::make('Замовлення')
->schema([
TextEntry::make('number')->copyable(),
TextEntry::make('customer.name')->label('Клієнт'),
TextEntry::make('status')->badge(),
TextEntry::make('total')->money('UAH'),
IconEntry::make('is_paid')->boolean(),
TextEntry::make('created_at')->dateTime('d.m.Y H:i'),
])
->columns(3)
->columnSpanFull(),
RepeatableEntry::make('items')
->schema([
TextEntry::make('product.name'),
TextEntry::make('qty'),
])
->columns(2)
->columnSpanFull(),
]);
}
Записи (entries) живуть у Filament\Infolists\Components: TextEntry, IconEntry, ImageEntry, ColorEntry, CodeEntry, KeyValueEntry, RepeatableEntry. Макет - ті самі Section, Grid, Tabs зі схем.
Чим краще за форму з disabled():
- форматування як у таблицях: бейджі, гроші, дати, іконки, markdown, копіювання в буфер, посилання;
- жодних полів введення - менше HTML, немає стану форми в Livewire-компоненті;
- зв'язки й JSON читаються крапковою нотацією:
customer.name,meta.title; - вимкнена форма виглядає як «щось зламалося» і погано читається.
Що варто знати:
- сторінку перегляду додають у ресурс опцією
--viewпри генерації (або вручну вgetPages()); - якщо метод
infolist()не визначено, Filament показує на сторінці перегляду вимкнену форму; TextEntryзhtml()чиmarkdown()санітизує вміст - на відміну від власного Blade з{!! !!};- relation managers на сторінці перегляду за замовчуванням працюють лише в режимі читання.