私は次のようにZend_Formを拡張するクラスを持っています(簡略化):
class Core_Form extends Zend_Form
{
protected static $_elementDecorators = array(
'ViewHelper',
'Errors',
array('Label'),
array('HtmlTag', array('tag' => 'li')),
);
public function loadDefaultDecorators()
{
$this->setElementDecorators(self::$_elementDecorators);
}
}
次に、そのクラスを使用してすべてのフォームを作成します。
class ExampleForm extends Core_Form
{
public function init()
{
// Example Field
$example = new Zend_Form_Element_Hidden('example');
$this->addElement($example);
}
}
私の見解の1つでは、この1つのフィールドのみを表示する必要があります(Zend_Formによって生成されるものは他にありません)。だから私の見解では私はこれを持っています:
<?php echo $this->exampleForm->example; ?>
これは、次のようなフィールドを生成することを除いて、正常に機能します。
<li><input type="hidden" name="example" value=""></li>
これは明らかに、要素デコレータにHtmlTag:tag=>'li'を含めるように設定したためです。
私の質問は、この要素のすべてのデコレータを無効にするにはどうすればよいですか。非表示の入力要素にデコレータは必要ありません。