Nette vlastni routy do modulů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- darkkknightik
- Člen | 4
Mam takto strukturovanou aplikaci.
Mam modul Admin a modul Front. viz obrazek: http://www.jpeg.cz/…rom.png.html
Pro to jsem nastavil routy takto:
<?php
$router[] = new NRoute('index.php', array('module' =>'Front', 'presenter' => 'Frontend', 'action' => 'default'), NRoute::ONE_WAY);
$router[] = $adminRouter = new NMultiRouter('Admin');
$adminRouter[] = new NRoute('admin/<presenter>/<action>[/<id>]', array('module' => 'Admin', 'presenter' => 'Admin', 'action' => 'default', 'id' => NULL));
$router[] = $frontRouter = new NMultiRouter('Front');
$frontRouter[] = new NRoute('<presenter>/<action>[/<id>]', array('module' => 'Front','presenter' => 'Frontend', 'action' => 'default'));
?>
Kdyz jsem ted ale chtel udelat akci ktera by mela url:
/vi/cokoliv nazev/INT ID
zkusil jsem routu takto:
<?php
$adminRouter[] = new NRoute('vi/(.*)/<id>', array('presenter' => 'Display', 'action' => 'display', 'id' => NULL));
?>
Jen to zkoncilo na: BadRequestException #404
Melo by to jit do modulu=Admin Presenter=Display a idcko mu predat
Dal bych chtel routu ktera by sla do modulu module=Front presenter=Clanek a
id clanku
url ve smyslu /clanek/nazevclanku-INT ID
Diky
- Filip Procházka
- Moderator | 4668
To bude tím, že takhle routy vůbec nefungují. Nemůžeš si jen tak dát
do url (.*)
musíš to dát do parametru a ten pojmenovat, jinak to
bude escapováno.