Propojení presenteru se šablonou

petrkasnal
Člen | 42
+
0
-

Zdravím mám takový dotaz. Začínám s Nette a mám takový problém mám presenter AddProjectPresenter:

class AddProjectPresenter extends UI\Presenter {

    public function createComponentRegistrationForm() {
        $form = new UI\Form;
        $form->addText('name', 'Jméno:');
        $form->addText('date', 'Datum odevzdání:');
        $form->addCheckbox('ok', 'Podmínky:');
        return $form;
    }

    public function registrationFormSucceeded(UI\Form $form, $values) {
        $this->flashMessage('Vše v pořádku.');
        $this->redirect('Hompage:');
    }

}

A tuto metodu bych chtěl zavolat v šabloně default.latte, vím že to bude nějaká začátečnická drobnůstka a jestli to už zdeje tak se omlouvám…

{control registrationForm}

Toto nefunguje…

Editoval petrkasnal (14. 6. 2017 14:19)

jiri.pudil
Nette Blogger | 1028
+
+1
-

Toto nefunguje…

No jasně, vždyť to máš rozbitý!

Teď vážně: ten kód vypadá v pořádku (když pominu, že ve formuláři nemáš submit tlačítko), takže zkus rozvést, co znamená „nefunguje“, a jestli ti to vyhodí nějakou chybu, tak jakou, jinak ti těžko poradíme :)

Editoval jiri.pudil (14. 6. 2017 14:22)

petrkasnal
Člen | 42
+
0
-

Jo promiň… omlouvám se
O tlačítku vím to samozřejmě dopřidám :)
Vyhodí se tato chya:
Nette\InvalidArgumentException
Component with name ‚registrationForm‘ does not exist

Soubory jsou uloženy:
presenter – \app\presenters\AddProjectPresenter.php
šablona – \app\presenters\templates\Homepage\default.latte
Moc nevím co víc napsat :/ Snad to tkhle stačí

David Matějka
Moderator | 6445
+
+1
-

mas to v presenteru AddProject, ale chces to volat ze sablony pro Homepage presenter

petrkasnal
Člen | 42
+
0
-

Aha to jsem neveděl, že k presenteru je přidružená šablona… A mohl by si mi prosím napsat jak bych to měl udělat ?

Altimit
Člen | 82
+
+1
-

Ahoj, můžeš to buď přehodit do přidruženého presenteru (HomepagePresenter.php > templates/Homepage/xxx.latte) nebo to použít jako továrničku → více info zde
Kdy tu továrničku registruješ do configu a pak ji jednoduše voláš v daném presenteru :)

jiri.pudil
Nette Blogger | 1028
+
+2
-

A mohl by si mi prosím napsat jak bych to měl udělat ?

Řídí se to velmi jednoduchou konvencí :)

petrkasnal
Člen | 42
+
0
-

Ahoj děkuju moc nějak jsem to zkusil ale nefunguje mi to… Budu to zkoušet dál

petrkasnal
Člen | 42
+
0
-

jiri.pudil děkuju kouknu se na to snad se mi to povede