POST data jako argumenty view?

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

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

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

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

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.