Component with name ‚taskForm‘ does not exist

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

Snazim se proniknout do Nette a tak jedu dle vzoroveho prikladu z dokumentace „Piseme prvni aplikaci“.
v TaskPresenter.php mam tohle:

protected function createComponentTaskForm()
   {
       $userPairs = $this->userRepository->findAll()->fetchPairs('id','name');
       $form=new Form();
       $form->addText('text', 'Úkol:', 40, 100)
               ->addRule(Form::FILLED, 'Je nutné zadat text úkolu.');
       $form->addSelect('userId', 'Pro:', $userPairs)
           ->setPrompt('- Vyberte -')
           ->addRule(Form::FILLED, 'Je nutné vybrat, komu je úkol přiřazen.');
       $form->addSubmit('create', 'Vytvořit');
       return $form;
   }

V adresari templates/Task mam default.latte, ve kterem je mimo jine:

<fieldset>
    <legend>Přidat úkol</legend>

    {control taskForm}
</fieldset>

Kdyz pak aplikacku spustim, vyskoci mi ladenka s touhle hlaskou: Component with name ‚taskForm‘ does not exist.
Muze mi nekdo poradit, kde hledat chybu?
Diky.

Šaman
Člen | 2666
+
0
-

Já sice už formuláře řeším jinak, ale chybu nevidím. Nasdílej někam kód (ideálně na GitHub), myslím si, že pes je zakopaný někde jinde, možná v nějakém překlepu.

JarekSt
Člen | 39
+
0
-

Šaman napsal(a):

Já sice už formuláře řeším jinak, ale chybu nevidím. Nasdílej někam kód (ideálně na GitHub), myslím si, že pes je zakopaný někde jinde, možná v nějakém překlepu.

http://animalia.cz/sandbox.zip

Šaman
Člen | 2666
+
0
-

Tak už to je jasný :)
Nejedná se o TaskPresenter, ale o HomepagePresenter, kde žádnou komponentu nevytváříš, ale v šabloně ji stejně voláš. (HomepagePresenter ti naběhne hned na začátku, protože je to defaultní routa).
Když si do adresy dopíšeš cesta/sandbox/www/task/, tak ti to začne fungovat.

Řešením bude smazat přidávací formulář z Homepage/default.latte (vypadá to na pozůstatek některé z dřívějších verzí, kdy se ještě úkoly nepřidávaly pod jednotlivé seznamy). Teď se totiž úkoly přidávají až na TaskPresenteru a jen když máš vybraný seznam.

Editoval Šaman (28. 10. 2013 16:50)

JarekSt
Člen | 39
+
0
-

Šaman napsal(a):

Tak už to je jasný :)
Nejedná se o TaskPresenter, ale o HomepagePresenter, kde žádnou komponentu nevytváříš, ale v šabloně ji stejně voláš. (HomepagePresenter ti naběhne hned na začátku, protože je to defaultní routa).
Když si do adresy dopíšeš cesta/sandbox/www/task/, tak ti to začne fungovat.

Řešením bude smazat přidávací formulář z Homepage/default.latte (vypadá to na pozůstatek některé z dřívějších verzí, kdy se ještě úkoly nepřidávaly pod jednotlivé seznamy). Teď se totiž úkoly přidávají až na TaskPresenteru a jen když máš vybraný seznam.

aha, jasne – diky moc

jsvelta
Člen | 39
+
0
-

Ked si dobre spominam, tak by mala byt i na homepage, ale s inym nastavenim.
Myslim, ze ta su len moje alebo vsetky nesplnene.