NRoute – Povinne parametry v query_stringu + generovani
- Dr.Diesel
- Člen | 53
Ahoj,
lze v masce routeru pouzit krome domeny/uri take query_string? Tj. neco jako
$router[] = new NRoute('/', array(
'presenter' => 'Homepage',
'action' => 'default',
));
$router[] = new NRoute('/ ? show=catalog', array(
'presenter' => 'Homepage',
'action' => 'catalog',
));
Myslim tim aby se routa neprepinala uri, ale query_stringem? Zaroven aby to ten query_string generovalo pri sestavovani url?
$presenter->link('catalog'); // => /?show=catalog
Zatim jsem si s tim delsi dobu hral a nepodarilo se mi router prinutit query_string vygenerovat, aniz bych mu ho predal jako parametr. Jedine ceho jsem v routeru doculil je jeho prejmenovani.
$router[] = new NRoute('/ ? renamed-show=<show>', array(
'presenter' => 'Homepage',
'action' => 'catalog',
));
Zaroven tedy neni query_string rozlisovany pri match routeru ? Pravdepodobne z bezpecnostnich duvodu ?
- David Grudl
- Nette Core | 8218
Myslíš tohle?
$router[] = new NRoute('/ ? show=<action>', array(
'presenter' => 'Homepage',
'action' => 'catalog',
));
- souki
- Bronze Partner | 22
Řeším podobný problém.
Chtěl bych homepage obsluhovat Homepage presenterem, ale adresy typu /?q=.* bych rád předával jinému presenteru. Ať zkouším co zkouším, tak se mi vždy použije routa, která je zapsaná jako první.
Takhle vypadá můj nefungující kód:
$router[] = new Route('/ ? q=<q .+?>', array(
'presenter' => 'Search',
'action' => 'default'
));
$router[] = new Route('/ ', array(
'presenter' => 'Homepage',
'action' => 'default'
));