Менеджер связи в Filament
Давайте откроем менеджер связи. Под формой поста появится таблица дочерних комментариев, привязанных к этой записи. Смотрим на /admin/posts/1/edit.
Для связи hasMany заводят
класс менеджера. В свойстве
relationship указывают
имя метода на модели поста,
а в table задают колонки
дочерней таблицы.
Создадим CommentsRelationManager.php
с текстом комментария:
<?php
namespace App\Filament\Resources\Posts\RelationManagers;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class CommentsRelationManager extends RelationManager
{
protected static string $relationship = 'comments';
public function table(Table $table): Table
{
return $table->columns([
TextColumn::make('body'),
]);
}
}
?>
Чтобы блок появился на странице правки, в ресурсе перечисляют менеджеры:
<?php
namespace App\Filament\Resources\Posts;
use App\Filament\Resources\Posts\RelationManagers\CommentsRelationManager;
use Filament\Resources\Resource;
class PostResource extends Resource
{
public static function getRelations(): array
{
return [
CommentsRelationManager::class,
];
}
}
?>
На странице работника покажите список его заметок.