在zend框架2中将变量传递给表单的最简单方法是什么?
似乎你只能向构造函数发送一个名称值,但我需要向表单发送一些选项来设置/填充一些选择器。
谢谢!
答案 0 :(得分:3)
如果您使用自己的类扩展Form:
class MyForm extends \Zend\Form\Form
然后,您可以通过它的构造函数传递您喜欢的任何变量,并将表单名称传递给父Form类:
public function __construct($myVar, $myVar2)
{
//do things with my vars
$this->setVar($myVar);
// send name to parent constructor
parent::__construct('myFormName');
}
您可能还想考虑使用Factory
来注入可以在Module.php
中配置的依赖项:
public function getFormElementConfig()
{
return array(
'factories' => array(
'MyForm' => function (ServiceManager $sm) {
return new \MyNamespace\MyForm($sm->get('someDependancy'));
},
)
);
}
此表单现在可通过任何服务感知类的服务定位器获得:
$serviceLocator->get('FormElementManager')->get('MyForm');
通过工厂注入依赖项。