onSuccess[] a více parametrů v callbacku

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

Je možné předat v callbacku přes metodu invoke nějaká vlastní data? např.:

	protected function form()
	{
		$form = new Form;
		...
		$form->onSuccess[] = callback($this, 'proccess')->invoke($form, $moje_promenna);
		return $form;
	}

	public function proccess($form, $moje_promenna)
	{
		...
	}
Foowie
Člen | 269
+
0
-

U PHP >= 5.3 můžeš použít

$form->onSuccess[] = function($form) use($mojePromenna) {
	...
}

Nebo tu hodnotu můžeš předat přes třídní proměnnou, nebo přes hidden field a nebo to udělat úplně jinak ;)

Editoval Foowie (9. 9. 2012 17:52)

Felix
Nette Core | 1245
+
0
-

On asi myslel, aby pak mel

function process($form, $moje_promenna) {
 // ..
}

To mam pocit, ze nejde. https://api.nette.org/…orm.php.html#429 – tady se predava jenom form.

Nox
Člen | 378
+
0
-

ala JS

<?php
$form->onSuccess[] = function($form) use($mojePromenna, $jinaPromenna) {
        process($form, $mojePromenna, $jinaPromenna);
}
?>

nebo podědit ::fireEvents nebo ony parametry přiřadit do formu a pak si to vytáhnout z něj (to je takové stavové, možná preferovat ty předchozí…)