gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:24:18 25 4
gpt4 key购买 nike

我写了一个表单 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com