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
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 | 566
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)