request->GetPost = null zatial co $_POST != null
- buksy
- Člen | 22
Potrebujem v presenteri podporovat data posielane GET aj POST metodou. Chcel som to spravit takto:
<?php
// Inside some presenter method
$values = array_merge($this->request->getParameters(), $this->request->getPost());
?>
Vsimol som si ale, ze vo vysledku sa nenachadzaju ziadne POST data, tak som to otestoval:
<?php
// Inside some presenter method, again
print_r($this->request->getPost());
print_r($_POST);
?>
Preco mi getPost() vracia null, zatial co $_POST mi vrati data?
PS: Data som na stranku poslal na rychlo vytvorenym formularom cez firebug priamo v prehliadaci, nevytvaral som formular ako komponentu (to vsak hadam nie je problem :) )
- vvoody
- Člen | 910
pre GET volaj nad presenterom getParameter
pre POST by bolo najslušnejšie vytvoriť Nette\Forms\Form
- buksy
- Člen | 22
A ked dostavam data z ineho webu alebo z mobilnej aplikacie? Nemam tam moznost vytvorit Nette formular a jednoducho dostavam len vysledok po odoslani formulara. Ako spracujem taketo data cez Nette? (alebo je zbytocne to vyzadovat od nette? Dochadza tam este k nejakej uprave dat, escapovanie alebo nieco?)
- jiri.pudil
- Nette Blogger | 1032
Surová data ($_POST
) jsou v
Nette\Http\Request::getPost()
, nikoliv
Nette\Application\Request::getPost()
.
- enumag
- Člen | 2118
@buksy:
Tvůj router na vstupu dostane Nette\Http\Request a má za úkol vytvořit instanci Nette\Application\Request. Stačí jen předat post parametry z prvního tomu druhému, úplně stejně jako to dělá Nettí router (očekával jsem že tohle ti dojde už z mého odkazu výše – ze zdrojáku Nette je to naprosto zřejmé).
Pokud jde o $_POST tak Nette při vytváření Http\Requestu používá docela šílenou logiku, takže bych osobně raději používal ten Nettí.
- David Matějka
- Moderator | 6445
pridas to tam presne tak, jak je to v tom Nettim Route (viz odkaz od @enumag)
rozdil je asi takovejhle
EDIT: no tak pozde :)
Editoval matej21 (24. 9. 2013 22:45)