automatické přesměrování routy
- onny
- Člen | 67
Dobrý den,
mám malý problém, udělal jsme si pravidlo
$router[] = new Route('zaznam/<id>', array(
'presenter' => 'Zaznamy',
'action' => 'show',
'id' => NULL,
));
a funguje to správně, když zadám web.cz/zaznam/25 objeví se požadovaná stránka, bohužel s tím efektem, že se url sama přesměruje na web.cz/zaznam/show/25. Jak to potlačit?
Děkuji
- KillPrd
- Začátečník | 110
Ahoj mám podobný problém, strukturu webu mám udělanou na FrontModule a
AdminModule.
routy mám
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
problém nastava když si udělám menu položky a snažím se udělat odkaz na kategorie url tvořím takto
<li><a href="{link Kategorie, 'id' => $item->id}">{$item->nazev}</a></li>
Výsledná url vypadá takto
http://localhost/…/kategorie/1
všude cpe default.
a navíc nenačte PRESENTER KategoriePresenter.php což je také divné…
někde se vloudila chybka…
- Ondřej Mirtes
- Člen | 1536
KillPrd: Ke Kategorie patri dvojtecka, takhle se ti nacetla action kategorie aktualniho presenteru.
- KillPrd
- Začátečník | 110
Ondřej Mirtes napsal(a):
KillPrd: Ke Kategorie patri dvojtecka, takhle se ti nacetla action kategorie aktualniho presenteru.
v případě že dodám dvojtečku tedy url je
document_root/kategorie/default/2
pak konecna url je zase spatne teda podle me protože template to hleda tady. pritom akci mám kategorrie i render tedy template by mel byt kategorie.phtml
templates/FrontModule/Kategorie/default.phtml
Editoval KillPrd (11. 9. 2010 11:00)
- Ondřej Mirtes
- Člen | 1536
Tak se rozhodni, jestli chceš Presenter:action Kategorie:default nebo Default:kategorie.
- KillPrd
- Začátečník | 110
Ondřej Mirtes napsal(a):
Tak se rozhodni, jestli chceš Presenter:action Kategorie:default nebo Default:kategorie.
Problem je asi v tom že ma predstava byla ta že odkaz bude pouze
/kategorie/1
A hlavne vem to cert kdfyž tam je default ale problem je ze mi to nenacte
promenne z presenteru a to ja asi kamen urazu. jiz jednou jsem docilil toho ze
jsem mel adresu tak jak jsme potreboval a dokonce to bralo i presenter nicmene
nesel mi udelat dalsi odkaz na clanek stale to hazelo odakz na kategorii
tak nevin kde je vlastne problem protoze pokud ma spolupracovat nazev presenteru v nem nazev akce s nazvem layoutu tak to nefunguje…
- KillPrd
- Začátečník | 110
Tak bych Vám chtěl poděkovat už jsem na to přišel
řešení Routy:
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('kategorie/<id>', array(
'module' => 'Front',
'presenter' => 'Kategorie',
'action' => 'kategorie',
'id' => NULL,
));
$router[] = new Route('clanek/<id>', array(
'module' => 'Front',
'presenter' => 'Clanek',
'action' => 'clanek',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' => 'Front',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
url link v layoutu je:
<a href="{link Kategorie:kategorie, 'id' => $item->id}">
a na clanek:
<a href="{link Clanek:clanek, 'id' => $todo->id}">
výsledná url je :
document_root/kategorie/1
a clanek:
document_root/clanek/1