Rozdílnost zápisů u route (array vs Route)
- sinacek
- Člen | 23
Ahoj,
když zapíšu tu samou routu dvěmi různými zápisy, tak mi to dává různé
výsledné adresy
<?php
$router[] = new Route('Ucetnictvi/<presenter>/<action>', 'Ucetnictvi:Default:default');
//localhost/Ucetnictvi/ucetnictvi.ucetnictvi/
$router[] = new Route('Ucetnictvi/<presenter>/<action>', array(
'module' => "Ucetnictvi",
'presenter' => 'Default',
'action' => 'default',
));
//localhost/Ucetnictvi/ucetnictvi/
?>
Je pro to nějaké vysvětlení? případně jak kratší zápis upravit aby nedělal adresu ve tvrau <module>.<presenter>?
Díky
- Filip Procházka
- Moderator | 4668
Zápis
$router[] = new Route('Ucetnictvi/<presenter>/<action>', 'Ucetnictvi:Default:default');
Odpovídá
$router[] = new Route('Ucetnictvi/<presenter>/<action>', array(
'presenter' => 'Ucetnictvi:Default',
'action' => 'default',
));
Použij zápis, který dělá co potřebuješ. Copak je to problém?
- nanuqcz
- Člen | 822
Ty dvě routy nejsou stejné. Rozdíl je v tom, že druhá routa si
„pamatuje“ defaultní modul, první ne. Když tak budeš mít URL
localhost/articles/
, první routy vygeneruje požadavek
:Articles:default
(zapomene modul Ucetnictvi), druhá vygeneruje
požadavek Ucetnictvi:Articles:default
Pokud nechceš, aby ti první routa „zapomínala“ název modulu, slouží k tomu RouteList. Při jeho použití by se i měla vygenerovat stejná URL jako v array případě.
Editoval xxxObiWan (1. 8. 2011 12:54)