0

テーブルフォームとして装飾するフォームを作成しました

飾るための私のコード

$this->setElementDecorators(array(
            'ViewHelper',
            'Errors'
            array(array('data'=>'HtmlTag'),
            array('tag'=>'td','class'=>'element')),
            array('Label',array('tag'=>'td')),
            array(array('row'=>'HtmlTag'),array('tag'=>'tr')),

    ));

$this->setDecorators(array(
            'FormElements',
            array('HtmlTag',array('tag'=>'table')),
            'Form'
        ));

正常に動作するようになりました。エラー メッセージも装飾されます。コードを変更するにはどうすればよいですか?

4

2 に答える 2

2

すべてのエラーを 1 か所にグループ化して表示したい場合は、各要素から Error デコレータを削除してから、formErrors デコレータを追加する必要があります。以下は、 Zend フォームのエラー メッセージを削除する方法の例です。

$form->setDecorators(array(
    'FormElements',
    new Zend_Form_Decorator_FormErrors(array
        (
            'ignoreSubForms' => true,
            'markupElementLabelEnd' => '</b>',
            'markupElementLabelStart' => '<b>',
            'markupListEnd' => '</div>',
            'markupListItemEnd' => '</span>',
            'markupListItemStart' => '<span>',
            'markupListStart' => '<div id="Form_Errors">'
        )
    ),
    'Form'
)); 
于 2010-02-25T17:09:50.760 に答える
2

これはかなり複雑な方法です。デコレータにもクラスを追加したので、例とは異なりスタイルを設定できます。

// To be assigned at the beginning of your form class.

    public $elementDecorators = array(
    'ViewHelper',
    'Errors',
    array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'col2')),
    array('Label', array('tag' => 'td','class'=>'taR')),
    array(array('row' => 'HtmlTag'), array('tag' => 'tr','class' => 'rowA')),
    );

$this->addElement('ValidationTextBox', 'name', array(
            'decorators' => $this->elementDecorators,
            'validators' => array(                                 
                                array('regex',  false,'/^[a-zA-Z ]+$/')
                            ),
            'label' => $this->translator->translate ( 'Name' ) . ' : ',
            'required' => true,
            'trim' => true,
            'propercase' => true,
             'regExp' => '[a-zA-Z ]+',
                'invalidMessage' => $this->translator->translate ( 'Name - Must be alpha numeric.' )
            )
            );
于 2010-02-24T12:39:33.260 に答える