Php ZF2如何将变量传递给窗体
在zend framework 2中,将变量传递给表单的最简单方法是什么 似乎您只能向构造函数发送名称值,但我需要向表单发送一些选项来设置/填充一些选择器Php ZF2如何将变量传递给窗体,php,forms,zend-framework2,Php,Forms,Zend Framework2,在zend framework 2中,将变量传递给表单的最简单方法是什么 似乎您只能向构造函数发送名称值,但我需要向表单发送一些选项来设置/填充一些选择器 谢谢 如果您使用自己的类扩展表单: class MyForm extends \Zend\Form\Form 然后,您可以通过其构造函数传入任何您喜欢的变量,并将表单名称传递给父表单类,如下所示: public function __construct($myVar, $myVar2) { //do things with my v
谢谢 如果您使用自己的类扩展表单:
class MyForm extends \Zend\Form\Form
然后,您可以通过其构造函数传入任何您喜欢的变量,并将表单名称传递给父表单类,如下所示:
public function __construct($myVar, $myVar2)
{
//do things with my vars
$this->setVar($myVar);
// send name to parent constructor
parent::__construct('myFormName');
}
您可能还想考虑使用<代码>工厂>代码>来注入您的依赖项,这些依赖项可以在您的<代码>模块中配置,PHP<代码>:
public function getFormElementConfig()
{
return array(
'factories' => array(
'MyForm' => function (ServiceManager $sm) {
return new \MyNamespace\MyForm($sm->get('someDependancy'));
},
)
);
}
此表单现在可通过服务定位器从任何服务感知类获得:
$serviceLocator->get('FormElementManager')->get('MyForm');
通过工厂注入依赖项。那么
$form->setAttribute
呢?您还可以使用FormElementManager检索表单,将选项传递给表单。ie:$serviceLocator->get('FormElementManager')->get('App\My\Form',array('myOption'=>'foo');