ZF2如何将变量传递给表单

时间:2014-09-04 20:16:35

标签: php forms zend-framework2

在zend框架2中将变量传递给表单的最简单方法是什么?

似乎你只能向构造函数发送一个名称值,但我需要向表单发送一些选项来设置/填充一些选择器。

谢谢!

1 个答案:

答案 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');

通过工厂注入依赖项。