Správné pojmenování metody action<Action> podle šablony

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

Dobrý den. Mám view Articles a v něm mám šablony from-around-the-world.phtml + další podobné. Pak mám presenter ArticlesPresenter a v něm metodu action<from-around-the-world>. Můj problém se týká toho, jak správně pojmenovat onu metodu. Zkoušel jsem actionFromAroundTheWorld, actionfromaroundtheworld, actionFrom_around_the_world a asi zilión dalších možností, ale pořád mě to v adrese prohlížeče vypisuje chybu, že neexistuje korespondující metoda. Jde mě o to, abych měl url v tvaru: example.cz/articles/from-around-the-world/1, kde pak ono číslo na konci značí číslo stránky ve výpisu článků v konkrétní dané sekci.

Jan Tvrdík
Nette guru | 2595
+
0
-

actionFromAroundTheWorld je správně, možná máš špatně routy.

fary
Člen | 155
+
0
-

V tom případě to asi bude těmi routami. Ale jak je správně nastavit? Čtl jsem i návod v dokumentaci, ale pořád nechápu, co znamenají ta jednotlivá slova v masce, když napíšu třeba <presenter>/<action>/[<id>]. Chápu, že <něco> se přeloží na konkrétní část url a / pak už tedy znamenají jenom oddělovníky v url a že [] značí nepovinou hodnotu, ale ta slova presenter, action a id jsou klíčová slova nebo jsou to jen slova, která v programu nemají význam ale význam mají jen pro prgogramtora?

Michal Vyšinský
Člen | 608
+
0
-

Neměly by být i šablony cammelCase?

besanek
Člen | 128
+
0
-

V routách mají nějaký “speciální“ význam jen presenter, action, a module. Podle nich aplikace ví, který presenter zavolat a kterou jeho akci. Ostatní parametry jsou na tobě.

Jakou chybu ti to přesně píše? Ideálně pošli výstup laděnky.

fary
Člen | 155
+
0
-

Laděnka se mě ani nezobrazí, protože se úkáže jen taková ta stránka s červeným vykřičníkem a s nápisem: This address wasnt understood! (Firefox). V url je pak chybová zpráva poslaná nette, která zní error: Unable to pass parameters to action ‚Articles:from-around-the-world‘, missing coresponding method.
Jenže ta metoda existuje a jmenuje se actionFromAroundTheWorld a i s parametry je to správně. Šblonu jsem zkoušel jak fromAroundTheWorld.phtml tak i from-around-the-world.phtml.

fary
Člen | 155
+
0
-

OK, takže už jsem to vyřešil. Takže kdyby se někdo dostal do podobné dezorientace, jako já, tak se musí:

jméno metody v presenteru: actionFromAroundTheWorld()
jméno šablony ve view: fromAroundTheWorld.phtml nebo fromAroundTheWorld.latte
v odkazech (např n:href): Articles:fromAroundTheWorld

Konkrétně se jedná o zápis toho fromAroundTheWorld.