Viac Modulov a ich routovanie
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vsimjak
- Člen | 9
Zdravím, chcel by som sa poradiť. Mám aplikáciu kde riešim viac modulov a pri tomto nastavní Route suboru sa mi stava vec že vždy prvý Route vezme ako nadardený a ked sa chcem linkovať na ostatné tak vždy berie prvý Route ako modul a hľadá presenter pre danu linku. Viete mi poradiť?
public static function createRouter()
{
$router = new RouteList;
$router[] = new Route('<presenter>/<action>[/<id>]\'', array(
'module' => 'Login',
'presenters' => 'Login',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>[/<id>]\'', array(
'module' => 'Admin',
'presenters' => 'Admin',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>[/<id>]\'', array(
'module' => 'AutoKino',
'presenters' => 'AutoKino',
'action' => 'default',
'id' => NULL,
));
//$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
Vystup v prehliadači.
Cannot load presenter 'Login:Admin', class 'App\LoginModule\Presenters\AdminPresenter' was not found.
- duke
- Člen | 650
Musíš jednotlivé routy nějak odlišit, aby byly od sebe rozpoznatelné. A pak je definovat v pořadí od nejspecifičtější k nejobecnější. Např.:
public static function createRouter() { $router = new RouteList; $router[] = new Route('login/<presenter>/<action>[/<id>]', array( 'module' => 'Login', 'presenter' => 'Login', 'action' => 'default', 'id' => NULL, )); $router[] = new Route('admin/<presenter>/<action>[/<id>]', array( 'module' => 'Admin', 'presenter' => 'Admin', 'action' => 'default', 'id' => NULL, )); $router[] = new Route('<presenter>/<action>[/<id>]', array( 'module' => 'AutoKino', 'presenter' => 'AutoKino', 'action' => 'default', 'id' => NULL, )); return $router; }
Toto ale povede na url jako:
- login/login/
- admin/admin/default/2
- autokino/someaction/5
Pokud máš ale v modulu jen 1 presenter, nemusíš ho vůbec do masky
routy uvádět.
Nejdřív si ale ujasni, jak chceš, aby tvá url vlastně vypadala.
Editoval duke (2. 6. 2017 13:36)