Ako spraviť aby zostalo ID v URL
- Ondřej Kubíček
- Člen | 494
máš tak definovanou routu, tak si to uprav na něco takového:
$route = new Route('<presenter>/<action>[?id=<id>]', 'Homepage:default');
- Kamil Valenta
- Člen | 820
Query parametry ani nejsou součástí rout, nech si pouze <presenter>/<action>
- Ondřej Kubíček
- Člen | 494
query parametr zapsat jde, aspon to píše dokumentace:
// říkáme, že GET parameter "cat" chceme v aplikaci použít pod názvem "categoryId"
$route = new Route('<presenter>/<action> ? id=<productId> & cat=<categoryId>', ...);
tak to jen nedávej jako volitený parametr, ty to tam stejně potřebuješ vždy ne?
tohle ti bude fungovat?
$route = new Route('mojPresenter/mojaAkcia?id=<id>', 'mojPresenter:mojaAkcia');
- jiri.pudil
- Nette Blogger | 1032
Ale jde a jsou, tedy aspoň dle dokumentace.
Jen asi nemůžou být nepovinné (v []
)?
Masky mohou také obsahovat tradiční GET parametry (parametry za otazníkem v URL). Pro tyto však nelze použít validační (např. regulární výraz) a další složitější struktury, nicméně můžeme určit, který parametr bude použit pod jakým názvem v aplikaci:
// říkáme, že GET parameter "cat" chceme v aplikaci použít pod názvem "categoryId" $route = new Route('<presenter>/<action> ? id=<productId> & cat=<categoryId>', ...);
- MajklNajt
- Člen | 498
ja si myslím, že by mu normálne mala fungovať táto routa:
$route = new Route('mojPresenter/mojaAkcia[/<id>]', 'mojPresenter:mojaAkcia');
pričom keď niekto použije adresu http://host.tld/…er/mojaAkcia?id=1, tak ho to presmeruje
vďaka canonicalize
na http://host.tld/…/mojaAkcia/1 – a v tomto formáte mu
to bude aj generovať linky – alebo sa mýlim?
EDIT: sorry, zle som si prečítal problém, chce NEpresmerovať
Editoval MajklNajt (16. 10. 2019 16:49)