K

Tabulka

Správci relací

Správce relací je tabulka zúžená na relaci vykreslená jako samostatná Livewire komponenta — protějšek relation managerů ve Filamentu. Podtřída pojmenuje vlastnickou relaci a definuje tabulku přesně jako jakákoli WithTable komponenta; základní třída připne dotaz k relaci vlastnického záznamu, takže seznam vždy zobrazuje jen související řádky.

Na této stránce

Správce relací je tabulka zúžená na relaci vykreslená jako samostatná Livewire komponenta — protějšek relation managerů ve Filamentu. Podtřída pojmenuje vlastnickou relaci a definuje tabulku přesně jako jakákoli WithTable komponenta; základní třída připne dotaz k relaci vlastnického záznamu, takže seznam vždy zobrazuje jen související řádky.

Definice správce

use NyonCode\WireTable\Columns\TextColumn;
use NyonCode\WireTable\RelationManagers\RelationManager;
use NyonCode\WireTable\Table;
 
class PostsRelationManager extends RelationManager
{
protected string $relationship = 'posts';
 
protected ?string $title = 'Posts';
 
public function table(Table $table): Table
{
return $table->columns([
TextColumn::make('title')->searchable()->sortable(),
]);
}
}

Vše, co umí WithTable komponenta, funguje i zde — sloupce, filtry, akce, exporty, hledání, řazení. query() je vynucen na vlastnickou relaci bez ohledu na to, co podtřída nastaví.

Vykreslení

Předejte vlastnický záznam z rodičovského pohledu:

@livewire(App\Livewire\PostsRelationManager::class, ['ownerRecord' => $author])

Komponenta vykreslí volitelný nadpis ($title) nad zúženou tabulkou.

Podporované relace

Pro výpis funguje jakákoli Eloquent relace. U belongs-to-many dotaz vybírá sloupce související tabulky (related.*), takže pivot sloupce nikdy nepřepíšou atributy související entity ani klíč řádku.

Perzistenční helpery

Základní třída vystavuje helpery vědomé si relace pro akce create/attach/detach:

// has-one / has-many: nastaví cizí klíč; belongs-to-many: vytvoří + připne
$this->createRelatedRecord(['title' => 'Hello']);
 
// jen belongs-to-many
$this->attachRelated($tag->id, ['note' => 'pivot attribute']);
$this->detachRelated($tag->id); // null odpojí všechny

Nepodporované typy relací vyhodí jasnou RuntimeException (např. createRelatedRecord() na belongs-to nebo attachRelated() na has-many).

Typické zapojení z hlavičkové akce:

->headerActions([
HeaderAction::make('add_post')
->form([TextInput::make('title')->required()])
->action(fn (array $data) => $this->createRelatedRecord($data)),
])

Přístupové metody

Metoda Popis
getOwnerRecord() Navázaný vlastnický model (vyhodí chybu, když chybí)
getRelationshipName() Nakonfigurovaný název relace
getRelationship() Čerstvá instance relace na vlastníkovi
getTitle() Volitelný nadpis

Související dokumentace