URL pouze s parametrem se změní při routování na modul

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

Ahoj, mám udělanou takto RouterFactory:

$router = new RouteList;

		$router[] = $admin = new RouteList('Admin');
		$admin[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');

		$router[] = $blog = new RouteList('Blog');
		$blog[] = new Route('blog/<presenter>/<action>[/<id>]', 'Homepage:default');
		$blog[] = new Route('<id>', 'Blog:default');

		return $router;

Při zadání „localhost/projekt/cokoli“ se provede poslední část tedy „$blog[] = new Route(‚<id>‘, ‚Blog:default‘);“, ale změní to url na „localhost/projekt/blog/blog/default/cokoli“ a to je ten problém. Rád bych, aby url byla stále „localhost/projekt/cokoli“.

Pokud mám routování takto:

$router = new RouteList;

		$router[] = $admin = new RouteList('Admin');
		$admin[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');

		$router[] = $blog = new RouteList('Blog');
		$blog[] = new Route('blog/<presenter>/<action>[/<id>]', 'Homepage:default');

		$router[] = new Route('<id>', 'Homepage:default');

		return $router;

v url to funguje podle představ – tedy po zadání „localhost/projekt/cokoli“ se opravdu provede poslední routa a url se nezmění na „localhost/projekt/homepage/default/cokoli“, ale již to nemám v modulu, ve kterém chci.

Neví tedy někdo, jak toto vyřešit? :)

GEpic
Člen | 562
+
0
-

A zkoušel si v prvním případě použít toto?

$router = new RouteList;

$router[] = $admin = new RouteList('Admin');
$admin[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');

$router[] = $blog = new RouteList('Blog');
$blog[] = new Route('[<id>]', 'Blog:default'); # prohodit toto
$blog[] = new Route('blog/<presenter>/<action>[/<id>]', 'Homepage:default'); # a toto

return $router;

Editoval GEpic (23. 7. 2016 14:36)

nekark
Člen | 16
+
0
-

V tomhle případě i adresa „localhost/projekt/blog/“ vezme v potaz tu první routu a né druhou :/