Router – zruseni presmerovani
- Duch.Veliky
- Člen | 68
Zdravím,
mám dotaz. Mám odkaz: /pobocky/praha například a když na to kliknu, tak
jsem chtěl nastavit toto pravidlo, aby mi z toho vznikla proměnná
„mesto“:
$router[] = new Route(‚/pobocky/<mesto>‘, ‚Pobocky:vypis‘);
Ale problém je, že v praxi nastane přesmérování na adresu:
/pobocky?mesto=praha
A to je špatně, protože to nechci přesměrovat.
Jak to vyřešit?
- Duch.Veliky
- Člen | 68
Zatím problém vyřešilo, že jsem nastavil:
public $autoCanonicalize = FALSE;
Nejsem si však jistý, jestli je to správné řešení. Případně díky za tip :)
- David Matějka
- Moderator | 6445
ukaz, v jakem poradi mas routy. mely by byt od tech nejvice specifickych
(coz tady ta je) az po obecne na konci (tedy neco jako
<presenter>/<action>
)
- Duch.Veliky
- Člen | 68
On ten rout jakoby funguje, ale prostě místo aby jen převzal proměnné, tak se přesměruje na ten tvar ?mesto=promenna, což asi zajišťuje právě ten autocanonical
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('/o-nas', 'Pages:o_nas');
$router[] = new Route('/pobocky/<mesto>', 'Pobocky:vypis');
$router[] = new Route('/pobocky', 'Pobocky:vypis');
$router[] = new Route('<presenter>/<action>[/<id>]', 'Pages:uvod');
return $router;
}
Editoval Duch.Veliky (27. 8. 2014 17:08)
- David Matějka
- Moderator | 6445
nejdriv, koukni na formatovani kodu zde na foru
jj chapu ten problem. ale nechapu, proc se to tak chova. poradi rout vypada spravne.. mozna zkus ty dve routy s pobockama nahradit za tuhle:
$router[] = new Route('/pobocky[/<mesto>]', 'Pobocky:vypis');
- Duch.Veliky
- Člen | 68
Jo takle jak jsi napsal to funguje. Ono to teda asi mělo pocit že to bude duplicitní stránka k tomu /pobocky a proto to z toho dělalo /pobocky?mesto=praha, když se nevypnula kanonická URL.
Díky moc :)