Kdyby\Replicator manualni vykresleni a chyba getControls()

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Rudolf247
Člen | 38
+
0
-

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ěď.

David Matějka
Moderator | 6445
+
0
-

ukaz, jak to mas v te sablone

Rudolf247
Člen | 38
+
0
-

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:

  1. Jméno Zaměstance
  2. Input

Button na přidání dalšího Inputu

(s přidaným inputem)
2. Jméno Druhého Zaměstance

  1. Input
  2. 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.