Zend 2 - 覆盖Zend / Form / View / Helper / FormMultiCheckbox.php

时间:2014-05-18 10:39:28

标签: zend-framework2

我在这里和我在Google上可以找到的内容上都有一些答案,但是我无法覆盖FormMultiCheckbox助手中的renderOptions和setLabelPosition函数。

我创建了一个新的FormMultiCheckbox.php并将其保存在我的Application / Form / View / Helper文件夹中,在这个文件中我重新定义了renderOptions和setLabelPostion函数。

然后在Modue.php中我将以下行添加到getViewHelperConfig函数中:

'invokables' => array(
    'formmulticheckbox' => 'Application\Form\View\Helper\FormMultiCheckbox'
        ),

在我看来,我正在使用以下行将输入添加到屏幕:

echo $this->formRadio($about_you_form->get('user_gender'), 'block')

其中block是我创建的元素的新布局。

我基本上试图让元素首先输出输入然后输出标签,而不是将所有内容都放在标签标签内。

我在这篇文章(How to use a custom form view helper in Zend Framework 2?)上尝试了两个答案,但我收到了错误消息:

Zend\Form\View\Helper\FormMultiCheckbox::setLabelPosition expects either Zend\Form\View\Helper\FormMultiCheckbox::LABEL_APPEND or Zend\Form\View\Helper\FormMultiCheckbox::LABEL_PREPEND; received "block"

我建议不要选择我的新renderOptions或setLabelPosition,因为后者的错误信息已被更改。

非常感谢任何帮助或指示。

此致

肖恩

1 个答案:

答案 0 :(得分:0)

Zend\Form\View\Helper\FormRadio延伸Zend\Form\View\Helper\FormMultiCheckbox

您向视图帮助程序管理器提供自定义多检查框帮助程序不会更改它。

您必须创建一个自定义FormRadio帮助程序,然后扩展自定义FormMultCheckbox类,然后覆盖配置中的formradio帮助程序,就像使用formmulticheckbox