我写了一个表单视图助手,它扩展了Zend\Form\View\Helper\FormMultiCheckbox
并覆盖其renderOptions(...) method:
<?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;
...
}
}
下一步是注册新的视图助手。我这样做就像here shown:
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',
)
);
}
}
现在我的问题:如何使应用程序使用我的表单视图助手而不是Zend\Form\View\Helper\FormMultiCheckbox
?
虽然安德鲁斯答案有效,但这不是必需的,只需使用默认视图助手名称并将其映射到您的助手类,应用程序就会使用您的助手
public function getViewHelperConfig() {
return array(
'invokables' => array(
'formmulticheckbox' => 'MyNamespace\Form\View\Helper\FormMultiCheckbox',
),
);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)