clonovaný formulář netiskne body formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Etch
- Člen | 403
Mám tak trochu problém s vykreslováním clonovaného formuláře. Pokud
ho naklonuji tak se vykreslí pouze begin a end sekce.
$form->render('body')
je NULL
viz příklad:
Presenter:
<?php
class TestPresenter extends Presenter{
public function createComponentTest(){
$out = new AppForm();
$out->addText('name', 'Name');
$out->addSubmit('send', 'Save');
$out->onSubmit[] = array($this, 'sendMethod');
return $out;
}
public function actionDefault(){
$testItems = array(array('name' => 'one'), array('name' => 'two'));
foreach ($testItems as $key => $val){
$clon = clone $this['test'];
$clon->setDefaults(array('name' => $val['name']));
$cloneOut[$key]['form'] = $clon;
}
foreach ($testItems as $key => $val){
$form = $this['test'];
$form->setDefaults(array('name' => $val['name']));
$out[$key]['form'] = $form;
}
$this->template->cloneOut = $cloneOut;
$this->template->out = $out;
}
}
?>
Šablona:
{block #content}
{foreach $out AS $item}
{!$item['form']}
{/foreach}
{foreach $cloneOut AS $item}
{!$item['form']->render('begin')}
{!$item['form']['name']->control}
{!$item['form']['send']->control}
{!$item['form']->render('end')}
{/foreach}
{/block}
První cyklus se vykreslí v pořádku a má všechny ‚sekce‘
formuláře.
Druhý cyklus se také vykreslí v pořádku pokud je formulář vypisován
ručně. Pokud by se, ale v druhém cyklu manuálně nevypsal obsah ‚body‘
a pouze by se zavolalo ‚{!$item['form‘]->render(‚begin‘)}' nebo
{!$item[‚form‘]} tak se vykreslí pouze begin a end sekce formuláře.