我試圖添加一個'DivElement'(只是一個空格)作爲一個練習,以ZF2形式。如何將自定義Form元素助手添加到Zend Form View Helper FormElement的類型圖中?
我創建Application\Form\Element\DivElement
namespace Application\Form\Element;
use Zend\Form\Element;
class DivElement extends Element {
protected $attributes = array(
'type' => 'div'
);
}
陪它,我創建Application\Form\View\Helper\DivElementHelper.php
namespace Application\Form\View\Helper;
use Zend\Form\ElementInterface;
use Zend\View\Helper\AbstractHelper;
class DivElementHelper extends AbstractHelper
{
public function __invoke(ElementInterface $element = null)
{
if (!$element)
return $this;
return $this->render($element);
}
/**
* @see \Zend\Form\View\Helper\AbstractHelper::render()
* @param ElementInterface $oElement
* @return string
*/
public function render(ElementInterface $oElement)
{
return "<div class='" . $oElement->getAttribute('class') . "'></div>";
}
}
我還添加了一個可調用我的module.config.php爲:
'view_helpers' => [
'invokables' => [
'formdiv' => DivElementHelper::class,
],
],
拼圖的最後一部分似乎是讓我的幫手成爲Zend\Form\View\Helper\FormElement
的protected $typeMap
數組。我似乎無法弄清楚什麼樣的配置增加了一個映射:
「格」 =>「formdiv」
前者。那裏顯然有一個addType方法,所以有人想到了它!我如何在那裏獲得我的學習課程?
謝謝。 Alex