2015-04-06 59 views
3

我試圖添加一個'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\FormElementprotected $typeMap數組。我似乎無法弄清楚什麼樣的配置增加了一個映射:

「格」 =>「formdiv」

前者。那裏顯然有一個addType方法,所以有人想到了它!我如何在那裏獲得我的學習課程?

謝謝。 Alex

回答

0

ZF2已經確認目前沒有配置方式來實現此目的。看起來像onBootstrap中的Module-way是唯一的路線:

php $services->get('ViewHelperManager')->get('formelement')->addType('div', 'formdiv');

相關問題