POST data jako argumenty view?
- A.
- Člen | 87
Ahoj,
Bylo by to moc hezky, kdyby se post data chovaly podobne jako normalni argumenty routy. Priklad:
<form action="{link test}">
<input type="text" name="myId" />
</form>
No a view by mohl pekne dosat nektere parametry primo z post. Odpadlo by rucni sahani na post data z formu, ktere netvori nette.
function actionTest($myId) {
}
Mam pocit, ze takto to funguje i ve fw cherypy pod pythonem, takze by nemusel byt problem :).
- David Grudl
- Nette Core | 8218
To je těžký, jsou situace, kdy by se to vyloženě hodilo, na druhou stranu to může kolidovat třeba s formuláři. Leda snad začít všechny prvky AppForm prefixovat názvem formuláře. Vlastně by to asi tak být mělo…
- A.
- Člen | 87
Nejak zvlast nechapu, co myslis onou kolizi. Mezi formulari? To uz je programatorovi. Nebo, ze data ziskana v Nette formu by se takto predavat do argumentu nemela?
Mam-li pak dvoje data, jedny v params, ktere se nyni jako argumenty action metody predavaji a dalsi v post, mohou byt jasna pravidla, ktere dostanou prednost.
Pokud by byly nejake pochypnosti, hezke (a logicke) reseni je aspon povolit tuto ficuru u signalu, kde bude v 99% tato funkcnost nejvice pozadovana.
Dovolil jsem si to v v PresenterComponent.php na 216. radce lehce „otuknout“ a funguje to ;-).
if (!$this->tryCall($this->formatSignalMethod($signal), $this->params + $this->presenter->request->post)) {
throw new BadSignalException("There is no handler for signal '$signal' in '{$this->getClass()}' class.");
}
- David Grudl
- Nette Core | 8218
Ano, jde o záležitost formulářů, které nedávají prvkům jména podle konvence, která se používá pro jiné parametry. Což jsem stejně plánoval změnit, takže pak by vložení POST dat do parametrů nemělo nic bránit.