Odkazy v komponentě a DataGrid

- JonasA
 - Člen | 3
 
Ahoj,
nedaří se mi rozchodit akce v DataGridu v komponentě: v presenteru
vytvořim (v továrničce) komponentu, jejíž součástí je taky
komponenta – DataGrid – a tam přichází problém, při přidání akce
s odkazem ve stylu $grid->addAction('Edit', 'Item:edit', .. )
dostanu vyjímku Component with name 'Item' does not exist.. Jestli
jsem správně pochopil generování odkazů v komponentách, tak by mělo být
stejný jako v presenteru, takže problém je někde v něm,
$this->link('Item:edit') totiž vyhazuje stejnou chybu
($this->presenter->link() jde bez problémů). Nevíte kde by
mohl být problém?
Díky

- Honza Kuchař
 - Člen | 1662
 
Generování odkazů funguje vždy relativně. Tzn. pokud zavoláš link nad objektem komponenty, tak dostaneš odkaz na nějakou akci té komponenty. Pokud opravdu potřebuješ vygenerovat odkaz na nějakou akci v přesenteru, tak musíš použít $this->presenter->link(); Nebo pokud chceš všechny akce směřovat na presenter, tak přepsat metodu link. (viz TabControl)

- Mombic
 - Člen | 3
 
Ano ano, samozřejmě o tomto způsobu obecně vím, však mám pocit, že „akce“ v DataGridu ho nedovolují nijak využít. Myslím, že je tam pouze
$this->control->link($dest);
, a proto jsem se zajímal, zda existuje nějaký jiný způsob či lepší finta, než přepisovat funkce DataGridu pro generování linku z metody
$grid->addAction();
.