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