Action name is not alphanumeric string

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

Ahojka, chci mít url „čitelnějsí“. Zkusil jsem tedy napsat
<a href=„nurofen-200-mg“>Více informací …</a>
a dostanu hlášku
Action name is not alphanumeric string.
(V případě presenteru je to stejné v bledě modrém)

Jestliže napíšu
<a href=„nurofen200-mg“>Více informací …</a> nebo <a href=„nurofen200mg“>Více informací …</a>
tak to projde.

Myslím si, že by to Nette mělo zkousnout – akce (presenter) nurofen200Mg přece nikomu nevadí?

Máte někdo nějakou radu ? (Zkoušel jsem to na verzi 2.0.12 i na 2.1.0)

Šaman
Člen | 2668
+
0
-

No, ono si myslím Nette interní adresu fooBar převede na url foo-bar a při zpracování requestu to řevádí zase zpátky, takže podtržítka a spojovníky se mu asi v názvu akce nelíbí.

Aurielle
Člen | 1281
+
0
-

Můj tip je ten, že Nette nepozná, že má z nurofen200Mg udělat nurofen-200-mg, jelikož neexistuje „malá“ a „velká“ dvojka. A navíc se mi zdá, že nějak divně generuješ odkazy… nezapomněl jsi tady ve svém případě na {plink}?

Majkl578
Moderator | 1364
+
0
-

Akcí se rozumí alfanumerický řetěžec začínající písmenem. Tohle omezení je nejspíš kvůli action metodám v presenteru. Zároveň v tvém případě je pomlčka rezervovaný znak pro komponentovou hiearchii. Nicméně z tvého kusu kódu to vypadá, jako bys odkazy nenechal generovat Nette, ale generoval je ručně, což je rozhodně bad practice. Použij standardní generování na základě rout.

smi
Člen | 75
+
0
-

Majkl578 napsal(a):

Akcí se rozumí alfanumerický řetěžec začínající písmenem. Tohle omezení je nejspíš kvůli action metodám v presenteru. Zároveň v tvém případě je pomlčka rezervovaný znak pro komponentovou hiearchii. Nicméně z tvého kusu kódu to vypadá, jako bys odkazy nenechal generovat Nette, ale generoval je ručně, což je rozhodně bad practice. Použij standardní generování na základě rout.

Tady ten html kód nebyl příliš podstatný, protože se to chová stejně, šlo o princip.

Přes routy se to samozřejmě udelat dát (také jsem to tak udělal), jen mi to trochu rve srdce – 20 rout by se možná dalo nahradit jednou s nějakým „namakanějším“ pravidlem.

Aurielle
Člen | 1281
+
0
-

Co ti bráni použít jednu routu a akorát si správně pojmenovat akce? Či využít překladovou tabulku?

Pavel Macháň
Člen | 282
+
0
-

smi napsal(a):

Majkl578 napsal(a):

Akcí se rozumí alfanumerický řetěžec začínající písmenem. Tohle omezení je nejspíš kvůli action metodám v presenteru. Zároveň v tvém případě je pomlčka rezervovaný znak pro komponentovou hiearchii. Nicméně z tvého kusu kódu to vypadá, jako bys odkazy nenechal generovat Nette, ale generoval je ručně, což je rozhodně bad practice. Použij standardní generování na základě rout.

Tady ten html kód nebyl příliš podstatný, protože se to chová stejně, šlo o princip.

Přes routy se to samozřejmě udelat dát (také jsem to tak udělal), jen mi to trochu rve srdce – 20 rout by se možná dalo nahradit jednou s nějakým „namakanějším“ pravidlem.

Proč 20rout? Ukaž ty routy jak máš. Určitě to půjde jednodušeji.

Editoval EIFEL (6. 2. 2014 13:27)

smi
Člen | 75
+
0
-

Aurielle napsal(a):

Co ti bráni použít jednu routu a akorát si správně pojmenovat akce? Či využít překladovou tabulku?

Jasně, překladová tabulka by se asi šikla – díky netrklo mě to