Создание связанной записи в Filament
Давайте создадим связанную запись. Над таблицей комментариев появится кнопка, которая откроет форму новой строки у текущего поста. Проверим на /admin/posts/1/edit.
Действия на таблице менеджера
задают в headerActions.
CreateAction сам подставит
внешний ключ родителя при
сохранении дочерней записи.
Дополним CommentsRelationManager.php
кнопкой создания:
<?php
namespace App\Filament\Resources\Posts\RelationManagers;
use Filament\Actions\CreateAction;
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'),
])
->headerActions([
CreateAction::make(),
]);
}
}
?>
Менеджер по-прежнему подключают из ресурса:
<?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,
];
}
}
?>
На странице работника сделайте кнопку новой заметки.