我寫的一個形式視圖助手,它擴展了Zend\Form\View\Helper\FormMultiCheckbox
並覆蓋其renderOptions(...)
方法:如何在Zend Framework 2中使用自定義表單視圖助手?
<?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圖所示:
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
?
這不應該這樣做。你應該使用Crisp的回答(下面)來完成這個工作。 – 2015-01-21 15:21:38