-1

Zendフレームワークでテーブル内にフォームを作成する方法に関する多くのチュートリアルを読みましたが、残念ながらどれもうまくいきませんでした. これは私のコードです:

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')),
);

public function init()
{

    $this->setName('message');

    $message_id = new Zend_Form_Element_Hidden('message_id');
    $message_id->addFilter('Int');

    $message_content = new Zend_Form_Element_Text('message_content');
    $message_content->setLabel('Message')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->addValidator('NotEmpty')
    ->setAttrib('class', 'frmtb');
    $username = new Zend_Form_Element_Text('username');
    $username->setLabel('Name')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->addValidator('NotEmpty')
    ->setAttrib('class', 'frmtb');

    $submit = new Zend_Form_Element_Submit('submit');
    $submit->setAttrib('id', 'submitbutton')
    ->setAttrib('class', 'frmbtn');


    //$this->addElements(array($message_id, $username,$message_content, $submit));
    $this->addElement($username,'username',array('decorators' => $this->elementDecorators));
    $this->addElement($message_content,'message_content',array('decorators' => $this->elementDecorators));
    $this->addElement($submit,'submit',array('decorators' => $this->elementDecorators));
}

私が間違っていることを教えてください。

4

1 に答える 1

1

わかりましたので、この質問を投稿した直後に答えを見つけることができて幸運でした。Zendフォームデコレーターに関するこの質問は本当に役に立ちました。

私のコードは次のようになります。

public function init()
{


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

    $this->setName('message');

    $message_id = new Zend_Form_Element_Hidden('message_id');
    $message_id->addFilter('Int');

    $message_content = new Zend_Form_Element_Text('message_content');
    $message_content->setLabel('Message')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->addValidator('NotEmpty')
    ->setAttrib('class', 'frmtb');

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

    ));

    $username = new Zend_Form_Element_Text('username');
    $username->setLabel('Name')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->addValidator('NotEmpty')
    ->setAttrib('class', 'frmtb');

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

    ));

    $submit = new Zend_Form_Element_Submit('submit');
    $submit->setAttrib('id', 'submitbutton')
    ->setAttrib('class', 'frmbtn');

    $submit->setDecorators(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->addElements(array($message_id, $username,$message_content, $submit));
}
于 2012-08-05T13:51:07.630 に答える