ZendFramework在自定义操作中回显表单

时间:2012-04-18 21:44:28

标签: zend-framework zend-form

我有一个控制器,下面有这个动作:

public function addAction()
{
    //action for the comments submission
    $form = new Application_Form_Comment();
    $form->submit->setLabel('Comment');
    $this->view->form = $form;
    if ($this->getRequest()->isPost()) {
        $formData = $this->getRequest()->getPost();
        if ($form->isValid($formData)) {
        $comment = new Application_Model_DbTable_Comments();
        $comment->addComment($formData['comment'], $id);
            $this->_helper->redirector('index');
        } else {
            $form->populate($formData);
        }
    }

在我看来,如果我回应$ this-> form; 表格没有显示。

里克多维

1 个答案:

答案 0 :(得分:0)

假设您尝试将表单与任何特定控制器分开,您可以使用视图助手。 Writing your own is quite easy

创建文件application/views/helpers/CommentForm.php,其中包含: -

class Zend_View_Helper_CommentForm extends Zend_View_Helper_Abstract
{
    public function commentForm()
    {
        $form = new Application_Form_Comment();
        return $form;
    }
}

然后在你需要它的任何视图中: -

echo $this->commentForm();

这将呈现您的表单。