URL pri predávani parametru handleru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iNviNho
Člen | 352
+
0
-

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
+
0
-

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
+
0
-

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).

iNviNho
Člen | 352
+
0
-

Pochopil som a už mi je všetko jasné :)
Routovanie mám na presenter/action a presenter/action/id, takže mu to sadlo na tu 2.

Ďakujem