URL pri predávani parametru handleru
- iNviNho
- Člen | 352
Ahoj,
Ono to ani problém nie je, ale nejak mi to nesedí. Mám jednoduchý signál, ktorý funguje ako mazatel obrázkov. Aby mohol mazať konkretný obrázok predávam mu parameter
<?php
<a n:href="delete!, $obrazok['id_obr']">Zmazať tento obrázok</a>
?>
Tento handler mi generuje url http://localhost/…aj-obrazok/2?…
Nejako mi to nesedí… Nemalo by to generovať niečo ako ?do=delete&id=2?
Taktiež by som sa chcel opýtať aký je rozdiel medzi actionPridajObrazok a renderPridajObrazok ? nedá sa pomocou obidvoch „metod“ docieliť to isté?
Ďakujem
- Michal Vyšinský
- Člen | 608
Nejako mi to nesedí… Nemalo by to generovať niečo ako ?do=delete&id=2?
No zřejmně máš někde v routě parametr <id> a tak ti to namapuje takto.
Jinak k mětodám action* a render*:
action se volá před render, a myslím, že to je jen konvence, že pokud
opravdu rendruješ šablonu, či nějaká data, tak to patří do render, pokud
jen něco zpracováváš a pak někam přesměrováváš, tak použij action.
Jestli tu šířím bludy, tak se omlouvám, a prosím o opravu.
- besanek
- Člen | 128
Sedí. Předpokládám, že používáš defaultní router ze sandboxu. V něm už parametr id máš. Ostatní, například “do“, v něm nejsou, proto se vkládají za otazník. Koukni se na RouterFactory a bude ti to jasné.
Action vs render. Největší rozdíl mezi nimi je ten, že action se volá před handle metodami a render až po nich. Action by tedy měl nastavovat presenter do rozumného stavu (např. načíst data z modelu) a render by měl nastavovat template do rozumného stavu (předat data do šablony).