formulář – action:„error: No route for…“

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

Mám search formulář, který mi normálně funguje všude jen né na stránce která má routu ve tvaru

<?php
$frontRouter[] = new Route('<cId>-<url>', 'Search:detail'); // cId - id produktu url - nazev produktu
//<form action="error: No route for Front:Search:detail(cId=1, do=searchForm-submit)" method="post">
?>

pokud v routě použiji pouze <url> nebo <cId> tak to funguje. Případně když udělám $url persistentní tak to taky jde, jenže to mi zas pak všude dál cpe ?url=…

Search formulář dělá jen to, že přesměruje Search:result $hledanyVyraz

Editoval Marax (10. 1. 2012 16:32)

uestla
Backer | 799
+
0
-

Defaultní maska pro parametry v URL je cokoli bez lomena.

Čili myslím, že router matchne celek a dosadí ho za cId.

Zkusil bych proto

$frontRouter[] = new Route('<cId [^/-]+>-<url>', 'Search:detail');

Jistý si ale nejsem.

Editoval uestla (10. 1. 2012 17:37)

Marax
Člen | 28
+
0
-

Tak to nepomohlo. Ono mě ta routa jako taková funguje. Mám doména.cz/ID-jmeno-produktu a v presenteru podle id hledám produkt, takže to rozpozná dobře i bez toho, ale ten formulář mi v ní nefunguje…

bojovyletoun
Člen | 667
+
0
-

zkus těm hodnotám nastavit výchozí hodnoty třeba 0. Neříkám, že je to řešení, ale aspoň se to posune.

Marax
Člen | 28
+
0
-

Dík. Funguje to :)

<?php
$frontRouter[] = new Route('<cId=0>-<url=0>', 'Search:detail');
?>

Sice to ukazuje z adresy domena.cz/12-pes action=„/12-?do=searchForm-submit“, ale pak se to stejně hned redirectuje, takže pohoda.