Nutnost definice render nebo action metody v presenteru
- Etch
- Člen | 403
Zdar,
nějak jsem teď narazil na „problém“ vynucení definice render nebo action metody pokud potřebuji vytvořit odkaz s parametrem. Nějak se nemohu zbavit pocitu, že kdysi dávno tato nutnost neexistovala.
class TestPresenter extends Presenter{
/** @persistent */
public $id;
public function beforeRender(){
$this->template->id = $this->id;
}
}
pokud pak v nějaké komponentě generuji link
{plink Test:default, $id}
tak to „vyhnije“ na chybě „Unable to pass parameters to action ‚Test:default‘, missing corresponding method.“ a jsem nucen do daného presenteru přidat render nebo action metodu
class TestPresenter extends Presenter{
/** @persistent */
public $id;
public function beforeRender(){
$this->template->id = $this->id;
}
public function actionDefault($id){}
/*
* nebo
* public function renderDefault($id){}
*/
}
i když jí reálně vůbec nepotřebuji. Zdá se mi to, nebo dříve nebylo nutné takovouto prázdnou metodu uvádět?
Editoval Etch (10. 12. 2014 13:05)
- David Matějka
- Moderator | 6445
nemusis ji uvadet, staci misto toho napsat nazev parametru pri vytvareni linku
{plink Test:default id => $id}
- Etch
- Člen | 403
Hech… jsem věděl, že to bude nějaká kravina. To je tak, když někdo kdo tam ten název parametru vždy zapisuje, předělává aplikaci po někom, kdo ty názvy parametrů explicitně v šablonách v makru neuvádí, přepíše jen názvy proměnných, odmaže nepotřebné věci a pak nemůže pochopit proč to nefunguje, když to vždycky fungovalo.
Každopádně rozhodně díky, protože na to, že to bude tímhle, bych asi jen tak nepřišel. :D