Nefungujúca routa
- timbulko
- Člen | 85
Zdravím,
celý večer už riešim routovanie no stále to nechce fungovať :-(.
bootstrap.php:
<?php
$router[] = new Route('<lang>/<module>/<presenter>/<action>', array(
"lang" => "sk",
"module" => "Default",
"presenter" => "Default",
"action" => "Default"
));
?>
No keď zavolám http://localhost/…registration tak to nefunguje a vypíše výnimku No route for Partner:User:registration(lang=sk). Takisto mi nefunguje ani {link :Partner:User:Registration} v šablóne.
Takisto mi to s modulom nijako nefungovalo ani pri SimpleRouteri:
<?php
$router[] = new SimpleRouter(array(
'module' => 'Default',
'presenter' => 'Default'
));
?>
Neviete v čom by mohla byť chyba?
Vďaka.
- kravčo
- Člen | 721
Máš v .htaccess
nastavenú direktívu RewriteBase?
RewriteBase /web/
timbulko napsal(a):
Takisto mi to s modulom nijako nefungovalo ani pri SimpleRouteri:
- romansklenar
- Člen | 655
timbulko napsal(a):
bootstrap.php:
<?php "action" => "Default" ?>
Pokud jsi na unixu, tak to s tou šablonou je kvůli tomu, protože máš
jméno akce nadefinováno velkým a unix je case-sensitive a hledá např
Default.Default.phtml
místo Default.default.phtml
který tam máš, takže zkus "action" => "default"
.
- timbulko
- Člen | 85
Som na Windowse a mod_rewrite mám nastavený správne. Hlavnú stránku mi aj načíta a takisto mi to funguje zadefiujem routy takto (pre každý modul samostatnú routu):
<?php
$router[] = new Route('<lang>/<module>/<presenter>/<action>', array(
"lang" => "sk",
"module" => "Default",
"presenter" => "Default",
"view" => "default"
));
/* bez tejto routy mi to nechce fungovať - nechápem prečo */
$router[] = new Route('<lang>/Partner/<presenter>/<action>', array(
"lang" => "sk",
"module" => "Partner",
"presenter" => "Default",
"view" => "default"
));
?>
Ale nechápem, prečo sa to takto správa. Logicky by to malo fungovať všetko len podľa tej prvej routy, no keď neuvediem tú druhú (kde uvedený konkrétny modul), tak to nefunguje.
Editoval timbulko (18. 4. 2009 10:53)
- Ola
- Člen | 385
Koukám, že v těch routách asi bude nějaký BUG, taky mi ovlivnění modulu přes url bez dalších rout nefunguje ..
EDIT: tak to funguje, musím ale uvádět celou url (vč. všech presenterů a actionů, který už jsou specifikovaný defaultně).. a konstrukce url při odkazování do modulu specifikovanýho parametrem nefunguje vůbec (hlásí mi to to samý co timbulkovi)
Editoval Ola (18. 4. 2009 12:50)
- TomasTB
- Člen | 13
tak k tomuto se take pripojuji, chtelo by to aby na to mrknul nekdo
zkusenejsi
Pokud mam router
<?php
$router[] = new Route('<module>/<presenter>/<action>', array(
'module' => 'default',
'presenter' => 'default',
'action' => 'default',
));
?>
Tak to nefakci, ale pokud pro kazdej module udelam zvlastni router tak to funguje
<?php
$router[] = new Route('modul1/<presenter>/<action>', array(
'module' => 'modul1',
'presenter' => 'default',
'action' => 'default',
));
$router[] = new Route('modul2/<presenter>/<action>', array(
'module' => 'modul2',
'presenter' => 'default',
'action' => 'default',
));
?>
Presenter to najde, startup() se provede, ale pri overovani $router->contructUrl(… , …) se nevygeneruje spravna adresa.
Pouzivam revizi 254
Opravil jsem si to tak, ze v Route.php jsem zmenil nekde kolem radku
258 tohle
<?php
if (isset($metadata[self::MODULE_KEY]['fixity'])) {
?>
na tohle, ale nejsem si jist co dalsiho to zpusobilo, ale funguji obe predchozi moznosti
<?php
if (isset($metadata[self::MODULE_KEY]['fixity']) && $metadata[self::MODULE_KEY]['fixity'] == self::CONSTANT) {
?>
Editoval TomasTB (20. 4. 2009 13:52)