forms - 如何在 Zend Framework 2 中使用自定义表单 View 助手?

标签 forms zend-framework2 view-helpers viewhelper

我写了一个表单 View 助手,它扩展了 Zend\Form\View\Helper\FormMultiCheckbox并覆盖其 renderOptions(...) 方法:

<?php
namespace MyNamespace\Form\View\Helper;

use Zend\Form\View\Helper\FormMultiCheckbox as ZendFormMultiCheckbox;

class FormMultiCheckbox extends ZendFormMultiCheckbox 
{

    protected function renderOptions(...)
    {
        ...
        $label     = $escapeHtmlHelper($label);
        $labelOpen = $labelHelper->openTag($labelAttributes);
        switch ($labelPosition) {
            case self::LABEL_PREPEND:
                $template  = $labelOpen . $label . $labelClose . '%s';
                break;
            case self::LABEL_APPEND:
            default:
                $template  = '%s' . $labelOpen . $label . $labelClose;
                break;
        }
        $markup = sprintf($template, $input);

        $combinedMarkup[] = $markup;
        ...
    }

}

下一步是注册新的 View 助手。我正在这样做 here显示:
namespace Application;

use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;

class Module {

    ...

    public function getViewHelperConfig() {
        return array(
            'invokables' => array(
                'FormMultiCheckboxViewHelper' => 'MyNamespace\Form\View\Helper\FormMultiCheckbox',
            )
        );
    }
}

现在我的问题是:如何让应用程序使用我的表单 View 助手而不是 Zend\Form\View\Helper\FormMultiCheckbox ?

最佳答案

尽管安德鲁斯的回答有效,但没有必要,只需使用默认的 View 助手名称并将其映射到您的助手类,应用程序将使用您的助手代替

public function getViewHelperConfig() {
    return array(
        'invokables' => array(
            'formmulticheckbox' => 'MyNamespace\Form\View\Helper\FormMultiCheckbox',
        ),                
    );
}

关于forms - 如何在 Zend Framework 2 中使用自定义表单 View 助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936804/

相关文章:

javascript - 允许用户通过 ajax 志愿执行任务

php - 在 ZF2 模块中定义自定义 ExceptionStrategy

zend-framework2 - 像类一样命名可调用对象是什么意思?

css - Rails - 如何将 css 添加到辅助方法

database - ZF2 在 View 助手中使用数据库表模型

javascript - NgFor 中的 Angular 表单验证

javascript - 在提交 html 表单时我想删除空变量

javascript - 地理位置自动填写地址表

zend-framework2 - Zendframework 2 中的 Restful Controller - 它的参数如何工作?

ruby-on-rails - 如何模拟 rspec 辅助测试的请求对象?