addDynamic – Přidání polí nefunguje
- PavelN
- Člen | 12
Zdaravím,
chtěl bych vytvořit komponentu pomocí addDynamic. Když jsem komponentu
tvořil v presentru, přidávání polí fungovalo.
Chtěl jsem to udělat už lépe, tak že si vytvořím pořádnou komponentu.
Přesunul jsem komponentu z presentru do app\component, vytvořil šablonu,
interface… ale přidávání polí přestalo fungovat.
Komponentu vidím, ale je prázdná(prádzný form). Přitom kód v presenteru fungoval.
Chtěl bych se zeptat, kde by se addDynamic měl „plnit“ ? V render metodě (tak jsem to dělal v presenteru)?
Přidávání polí (název komponenty je addArticle)
foreach($articles as $articelID => $article)
{
$this['addArticle']['articles'][$articleID]['check']->setValue(1);
}
Tento kód mi v Articlepresenteru fungoval. Po přesunutí komponenty už
bohužel ne.
Můžete někdo pomoci prosím ?
- David Kudera
- Člen | 455
Nemáš ten form v nové komponentě taky v metodě createComponent*?
class AddArticle extends Control
{
protected function createComponentForm()
{
$form = new Form;
// ...
return $form;
}
}
jestli to máš takhle nějak, tak musíš navíc ještě z presenteru přistoupit k tomu formu. Takže:
foreach($articles as $articelID => $article)
{
$this['form']['addArticle']['articles'][$articleID]['check']->setValue(1);
// dá se to i zkrátit:
$this['form-addArticle-articles'][$articleID]['check']->setValue(1);
}
kdyžtak o tom zkrácení se dozvíš víc tady
akorát nemyslím, že by to bylo úplně idální to takhle plnit z presenteru. Nebude lepší třeba ty data předat samotné komponentě, aby si je nastavila sama v sobě?