Jedna továreň pre dve a viac komponent podľa mena

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

Zdravím,
spravil som si jednoduchý formulár (jeden select s „Áno“, „Nie“). Chcem to použiť pre editáciu dvoch polí (properties) každého záznamu (napr. properties show a active). Nie je problém vytvoriť, napr.:

protected function createComponentShow()
{
	return new Multiplier(function ($id) {...});
}
protected function createComponentActive()
{
	return new Multiplier(function ($id) {...});
}

Problém ale nastane vtedy, ak by som chcel vyrobiť komponenty s inými názvami než show a active. Ide mi o to, vytvoriť nejako Multiplier komponentu s dynamickým názvom.

Skúšal som ešte:

$multiplier = new Multiplier(function($id) use ($property) {
	$component = $this->formFactory->create($property);
	$component->setId($id);
	return $component;
});
$this->addComponent($multiplier, $property . 'Component');

Dostal som ale chybu, že komponenta neexistuje…

Vopred ďakujem za pomoc.

Editoval orech (21. 4. 2015 14:36)