Zend Framework:我的表单不会呈现

时间:2012-08-14 17:47:14

标签: zend-framework zend-form zend-form-element

所以我在Zend Framework下创建了一个表单,然后我将自定义。我的第一个问题是使用csrf哈希安全性我得到一个应用程序错误。但是,当我删除它们时,我得到的是一个空白屏幕,只有在我删除CPATCHA保护时才会解决。任何人都可以向我解释原因吗?

我的表格:     

class Application_Form_Clips extends Zend_Form
{

    public function init()
    {

        // Set the method for the display form to POST
        $this->setMethod('post');

        // Add an email element
        $this->addElement('text', 'email', array(
            'label'      => 'Your email address:',
            'required'   => true,
            'filters'    => array('StringTrim'),
            'validators' => array(
                'EmailAddress',
            )
        ));

        // Add the comment element
        $this->addElement('textarea', 'comment', array(
            'label'      => 'Please Comment:',
            'required'   => true,
            'validators' => array(
                array('validator' => 'StringLength', 'options' => array(0, 20))
                )
        ));

        // Add a captcha
        $this->addElement('captcha', 'captcha', array(
            'label'      => 'Please enter the 5 letters displayed below:',
            'required'   => true,
            'captcha'    => array(
                'captcha' => 'Figlet',
                'wordLen' => 5,
                'timeout' => 300
            )
        ));

        // Add the submit button
        $this->addElement('submit', 'submit', array(
            'ignore'   => true,
            'label'    => 'Sign Guestbook',
        ));

        // And finally add some CSRF protection
        $this->addElement('hash', 'csrf', array(
            'ignore' => true,
        ));

    }


}

我的控制器:     

class AdminController extends Zend_Controller_Action
{

    public function init()
    {

        // get doctrine and the entity manager
        $this->doctrine = Zend_Registry::get('doctrine');
        $this->entityManager = $this->doctrine->getEntityManager();

        // get the users repository
        $this->indexVideos = $this->entityManager->getRepository('\ZC\Entity\Videos');
        $this->indexClips = $this->entityManager->getRepository('\ZC\Entity\Clips');

    }

    public function indexAction()
    {
        // action body
    }

    public function clipsAction()
    {

        // get a form
        $form = new Application_Form_Clips(); 
        $this->view->form = $form;

    }

    public function videosAction()
    {
        // action body
    }


}

我的观点:

<?php echo $this->form; ?>

1 个答案:

答案 0 :(得分:0)

基本错误,我没有在php.ini中取消注释session.pat