Inject služba se mi nepředá do Multiplieru

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

Rychlej dotaz:

Přes inject metody mám v presenteru přístupnou funkční službu:

$this->products

Když jí chci ale použít v multiplieru tak se mi injectnutá služba nepředá

protected function createComponentParametrForm()
{

	$service=$this;
	return new Multiplier(function ($id) use ($service) {
		$values=$service->products->getParametersId($id);
		$form = new Form;
		$form->addHidden('id')
		.
		.
	}
}

Na řádku, kde přiřazuji hodnotu do values mi to hodí chybu:

Cannot read an undeclared property AdminModule\ProduktPresenter::$products

Pokud do multiplieru nacpu samostatně také $this->products tak to funguje:

protected function createComponentParametrForm()
{

	$service=$this;
	$serviceproducts=$this->products;

	return new Multiplier(function ($id) use ($service,$serviceproducts) {

		$values=$serviceproducts->getParametersId($id);

		$form = new Form;
		.
		.
	}
}

Proč nefunguje varianta 1)

vvoody
Člen | 910
+
0
-

Lebo products máš private.

sejmor
Člen | 63
+
0
-

Dík to mi jaksi nedošlo :-)