РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppflPmRsCr 8 of 141 menu
◀ ▶

Создание ресурса в Filament

Модель поста в панели описывают ресурсом. Список этой модели открывается по адресу /admin/posts. Artisan собирает заготовку: каталог с классом ресурса, страницами, формой и таблицей. Так проще, чем копировать структуру вручную и промахнуться с именами классов.

В корне проекта выполним команду:

php artisan make:filament-resource Post

Команда создаст каталог ресурса постов и файлы PostResource.php, ListPosts.php, CreatePost.php, EditPost.php, PostForm.php и PostsTable.php.

Класс ресурса связывает модель с формой и таблицей. Метод form отдаёт настройку формы классу схемы, метод table - настройку таблицы классу таблицы:

<?php namespace App\Filament\Resources\Posts; use App\Filament\Resources\Posts\Schemas\PostForm; use App\Filament\Resources\Posts\Tables\PostsTable; use App\Models\Post; use Filament\Resources\Resource; use Filament\Schemas\Schema; use Filament\Tables\Table; class PostResource extends Resource { protected static ?string $model = Post::class; public static function form(Schema $schema): Schema { return PostForm::configure($schema); } public static function table(Table $table): Table { return PostsTable::configure($table); } } ?>

В PostForm.php перечисляют поля формы. Пока достаточно одного текстового поля заголовка, чтобы экран создания открылся:

<?php namespace App\Filament\Resources\Posts\Schemas; use Filament\Forms\Components\TextInput; use Filament\Schemas\Schema; class PostForm { public static function configure(Schema $schema): Schema { return $schema->components([ TextInput::make('title'), ]); } } ?>

В PostsTable.php задают колонки списка. Одной текстовой колонки заголовка хватит, чтобы таблица на странице списка отобразилась:

<?php namespace App\Filament\Resources\Posts\Tables; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; class PostsTable { public static function configure(Table $table): Table { return $table->columns([ TextColumn::make('title'), ]); } } ?>

Создайте ресурс для модели работника Worker. В меню должен появиться список с одним текстовым полем и одной текстовой колонкой имени работника.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить