如何使用zend表达式配置自定义表单元素

时间:2017-09-13 08:08:07

标签: zend-expressive

在我的ZF2应用程序中,我有几个带有注入数据库适配器的自定义表单元素。我使用方法将配置放在module.php文件中,如下所示:

var Dimension = dim.dimension(function(d) {
   return [d.columnA, d.columnB, d.columnC];
});

var Measure = Dimension.group().reduceSum(function(d) {
    if (d.columnA === 'Value_in_columnA') {
        return d.columnD;
    } else {
        return 0;
    }
});

如何在zend-expressive应用程序中配置自定义表单元素?

1 个答案:

答案 0 :(得分:0)

Form类通过'FormElementManger'调用元素。和FormElementManager从config读取'form_elements'键。它基本上是一个容器(服务管理器),所以你必须配置它与容器(工厂,invokables,别名等)相同。此外,您必须将Zend / Form模块注册到容器。我没有尝试过,但必须这样做;

(ps:现在为时已晚,如果它不起作用,请告诉我,以便我可以提供一个有效的例子。)

class MyModule\ConfigProvider {
    public function __invoke()
    {
        return [
            'dependencies' => $this->getDependencies(),
            'templates'    => $this->getTemplates(),
            'form_elements => [
                 /* this is where you will put configuration */
                 'factories' => [
                    MyElement::class => MyElementFactory::class,
                 ]
            ]
       ];
   }
}