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