Když neexistuje presenter pokračuje na další route

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

Ahoj, mám takovýto routy

$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$router[] = new Route('<jazyk=cs [a-z]{2}>/<presenter>/<action>', 'Homepage:default');
$router[] = new Route('<jazyk=cs [a-z]{2}>/[<prom1>/][<prom2>/]', 'Homepage:default');

Ale když router nenajde presenter, rád bych pokračoval dál v dalším routeru. Ale hlasí mi to chybu.
Nevíte kde dělám chybu?
Předem díky za odpověd
Míra

echo
Člen | 134
+
0
-

Zdravím,
routy sestavovat od specifických po obecné ⇒ změnit pořadí.

Nette prochází routy „od shora dolů“ a když url vyhovuje, postoupí požadavek dále. Nedělá to naopak.

Miri
Člen | 117
+
0
-

Já bohužel nemůžu změnit pořadí, protože ten rout co je dole je už ta poslední možnost.

hAssassin
Člen | 293
+
0
-

@Miri > pak ale trochu nerozumim dotazu. Chces aby pokud neexituje presenter, tak se slo na dalsi routu, ale zaroven dalsi routa neexistuje? takze co vlastne chces?

Tvuj problem je ten ze mas obecnou routu jako druhou a tu posledni ti to nematche. A bacha, v Nette se porovnava pouze podle regularu, cili prvni routa ktera vyhovi se vybere a nekontroluje se jestli presenter exituje nebo ne. Proste se zavola. A pokud neexistuje, tak to pak hazi 404, ikdyz by se mohlo stat, ze by regularnimu vyrazu mohlo vyhovet vice rout, dalsi se vzdy ingnoruji.

A jak z toho ven? Jednoduse, vlastni router. Nekde na foru tu byl tusim i navod jak presne vyse popsany problem resit ;)