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
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)