Routování – nastavení rout pro moduly
- ondrej256
- Člen | 187
Zdravím,
jsem uplný začátečník co se týče routování.
Mám ve své aplikaci Admin modul AdminModule.
V RouterFactory je od začátku routa
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
Potřebuju přidat další routu pro modul Admin
tu jsem udělal takto:
$router[] = new Route( 'admin', 'Admin:HomePage:default');
Ale když tuto routu přidám tak vyskočí chyba
Cannot load presenter 'Admin', class 'App\AdminPresenter'
pokud odstraním tu první routu
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
pak routa pro admin modul funguje, ale nelze se dostat na hlavní stranu.
Poradíte někdo jak to skloubit dohromady?
Navíc bych pro admin modul potřeboval routu upravit tak aby bylo možné předá předávat parametry
- ondrej256
- Člen | 187
Mysteria napsal(a):
Obecné routy musí být poslední, takže ta
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default')
by měla být v tvém případě poslední a ta pro AdminModul nad ní.
dík, ale nepomohlo to.
Routa pro admin modul vyhazuje chybu
Cannot load presenter 'Admin', class 'App\AdminPresenter'
když je uvedena routa pro admin modul samotná tak funguje.
- ondrej256
- Člen | 187
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = new Route( 'list', 'Admin:Product:list');
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
}
V app adresáři mám normálně presenter, templates, …, ale také Adresář AdminModule (který obsahuje opět presenter, templates …)
Potřebuju nastavit routovani tak aby hlavni strana byla App/templates/HomePage/default, aby bylo možné navštěvovat všechny ostatní templaty ve složce App/templates, fungovalo předávání parametrů atd. (což mně fungovalo když se RouterFactory nacházela jen routa:
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
A dále potřebuju aby se dalo dostat také do všech templatů Admin modulu tj. App/AdminModule. Například: App/AdminModule/template/HomePage/default