Routy: nematchovat výraz a přeskočit na další routu

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

Ahoj,
nemůžu ani s pomocí fóra vyřešit tento problém:

Definice rout:

$router[] = new Route('[^(admin/)]<presenter>/<action>[/<id>]', "FrontendHomepage:default");
$router[] = new Route('admin/<presenter>/<action>[/<id>]', "BackendHomepage:default");

Potřebuji, aby první routa nematchovala url začínající na „admin/“.
Potřebuji tedy buďto

  • nahradit výraz [^(admin/)],
  • nebo najít jiné řešení

Výraz [^(admin/)] jsem testoval ve variantách:

  • [!(admin/)]
  • [!?(admin/)]
  • [?!(admin/)]
  • (admin/){0}
  • apod.

Díky moc
Pavel

Unlink
Člen | 298
+
+2
-

A keby si tie routy len vymenil?

thirdknown
Člen | 26
+
0
-

Kdybych je vyměnil, tak budu mít frontendovou titulní stránku na adrese
localhost/www/admin/frontend-homepage/

Editoval thirdknown (13. 5. 2016 16:33)

Unlink
Člen | 298
+
+1
-

Počkaj, ty tam nemáš moduly, takže ako by sa to malo vlastne routovať?

možno bude stačiť toto

$router[] = new Route('admin[/<action>[/<id>]]', "BackendHomepage:default");
$router[] = new Route('<presenter>/<action>[/<id>]', "FrontendHomepage:default");
thirdknown
Člen | 26
+
0
-

Moduly nemám. Ano, tak jak to píšeš, to stačí.