Kdyby\Replicator manualni vykresleni a chyba getControls()
- Rudolf247
- Člen | 38
Ahoj,
Mám takový problém s Kdyby\Replicator a manuálním vykreslením (přes
„control nazevKomponenty“ vše funguje).
Ale jakmile se pokusím o to co je v dokumentaci
{form myForm}
{foreach $form['users']->containers as $id => $user}
{input users-$id-name} {label users-$id-name /}
{/foreach}
{/form}
dostanu chybu „Call to undefined method Kdyby\Replicator\Container::getControl(), did you mean getControls()?“
Někde na fóru jsem našel že tam někdo měl místo „containers“ „getContainers()“, ale výsledek je stejný. Nevíte někdo jak to vyřešit? Tady ještě přikládám tu komponentu
protected function createComponentTestKdyby(){
$form = new Form;
$emp = $form->addDynamic('emp', function (Container $emp_task) {
$emp_task->addText('emp_task_other');
}, 1);
$emp->addSubmit('addEmp', 'pridat')
->setValidationScope(FALSE)
->onClick[] = [$this, 'TaskFormAddNextEmp'];
$form->addSubmit('send', 'odeslat');
return $form;
}
public function TaskFormAddNextEmp(SubmitButton $button)
{
$button->parent->createOne();
}
Děkuji za každou odpověď.
- Rudolf247
- Člen | 38
David Matějka napsal(a):
ukaz, jak to mas v te sablone
Tak už mi to funguje. Měl jsem kontejner v kontejneru a já tam generoval pouze jedno $id (emp-$id-subtaskEmp-emp_task_other.) Správně to má být takhle: „emp-$id-subtaskEmp-$id-emp_task_other“, teda dostanu to s nespravným id, ale to už vím jak udělat, hlavně že to funguje.
Ale když už tu řešíme tohle, je možné udělat něco jakože mám multiselect a podle toho by se mi generovali ty inputy? Vysvětlím o co jde.
Je multiselect, kde je seznam zaměstanců, já bych vybral zaměstnance a mě by se vygenerovalo:
- Jméno Zaměstance
- Input
Button na přidání dalšího Inputu
(s přidaným inputem)
2. Jméno Druhého Zaměstance
- Input
- Input
Button na přidání dalšího inputu
Mám to celé vyřešené pomocí javascriptu, jde o to že je to vícekrokový formulář a když se uživatel vrátí na tento krok, tak každý uživatel má vygenerovaný pouze jeden input, který je prázdný. Tak jsem chtěl nějaké lepší řešení, než to obcházet pomocí cookies atd.