Nechápu chování routingu
- jh
- Člen | 22
Zdravím,
mám tyto 3 routy:
<?php
$router[] = new Route('index.php', 'Web:Homepage:default', Route::ONE_WAY);
$router[] = new Route('admin/<presenter>/<action>', 'Admin:Admin:');
$router[] = new Route('<presenter>/<action>[/<id>]', 'Web:Homepage:default');
?>
Po zadání adresy nette.localhost:85 očekávám výstup
z WebModule:HomepagePresenter:defaultAction.
Místo toho ale dostanu přesměrování na adresu
nette.localhost:85/admin/web.homepage a tam požadovaný výstup.
Při pročítání tutoriálů jsem někde narazil na tu tzv. kanonizaci, kde se
automaticky přesměrovává, aby se nerozmnělňoval pagerank, takže to
s tím asi souvisí, ale jak se to může presměrovat na routu, která
normálně vůbec nevede na ten očekávaný výstup.
- jh
- Člen | 22
HosipLan napsal(a):
Výchozí parametry se v adrese, pokud možno, nezobrazují.
Já ale nechápu, proč mě to přesměruje z adresy nette.localhost:85 na adresu nette.localhost:85/admin/web.homepage a jednoduše se nepoužije ta poslední routa, která lidskou řečí by měla říkat „když není uvedena žádná cesta, tak se použiji já (Web:Homepage:default)“.
- jh
- Člen | 22
srigi napsal(a):
Musis pouzit
MultiRouter
, pretoze tu sa hras s routovanim modulov. Kukni si to vexmaples/Modules-Usage
v distribucnom balicku Nette.
Nice dík, to vytváření zvlášť RouteListu pro oba moduly pomohlo, asi se pak při té kanonizaci používají jen routy z odpovídajícího RouteListu.