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();
.