В ZF3 я вызываю фабрику форм из контроллера, используя эту запись:
$form = $this->formManager->get(myForm::class);
не
$form = new myForm();
На заводе я использую то, что ZF3 рекомендует для метода:
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
//...
}
Я предполагаю, что $options
массив предназначен для передачи параметров в функцию. Как мне заполнить $options
массив в контроллере?
Я думаю FormManager
выше также дитя ServiceManager
, Итак, вместо использования get()
как это
$form = $this->formManager->get(myForm::class);
Я думаю, что вы можете использовать build()
, Вот пример
$form = $this->formManager->build(myForm::class, $options);
И параметры должны быть переданы в заводской форме
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
return MyForm($options);
}
Других решений пока нет …