Propojení presenteru se šablonou
- petrkasnal
- Člen | 42
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 | 1032
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
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
mas to v presenteru AddProject, ale chces to volat ze sablony pro Homepage presenter
- petrkasnal
- Člen | 42
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
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 | 1032
A mohl by si mi prosím napsat jak bych to měl udělat ?
Řídí se to velmi jednoduchou konvencí :)