Zend表格 - 不显示

时间:2014-04-25 14:48:55

标签: php zend-framework zend-db

我正在尝试创建一个新的Zend_Form。我试图按照文档说明,但屏幕上没有显示任何内容。 这是我的代码:

form / numero.php:

<?php

class Front_Form_Numero extends Zend_Form
{
  public function __construct()
    {
        // Constructeur du parent
        parent::__construct();

        $this->setMethod('post');
        $this->setAttrib('action', '/index/numform/');

        /* ###################################  tel                  ################################### */
        $tel            = new Zend_Form_Element_Text('tel');
        $tel            ->setLabel("N° tél");
        $tel            ->setAttrib('class','text');
        $tel            ->setRequired(true);
        $tel            ->addFilter('StringTrim')->addDecorators(array('clearfix'=>new Zend_Form_Decorator_HtmlTag(array('tag'=>'div','class'=>'clearfix'))));
        $tel            ->addValidator('StringLength', false, array(0, 10));
        $tel            ->setAttrib('maxlength', '10');

         /* ###################################  submit               ################################### */
        $submit         = new Zend_Form_Element_Submit('submit');
        $submit         ->setLabel("")->addDecorators(array('clearfix'=>new Zend_Form_Decorator_HtmlTag(array('tag'=>'div','class'=>'clearfix'))));
        $submit         ->setAttrib('class','submit btn btn-primary ico-btn-valider');
        $this           ->addElement($submit);

    }
}

controllers / indexController.php:

 public function numformAction() {
    // Création du formulaire
    $this->view->numform = new Front_Form_Numero();


    // Si le formulaire a été posté
    if($this->getRequest()->isPost())
    {
        // Si le formulaire est valide
        if($numform->isValid($this->getRequest()->getPost()))
        {
            // Données postées
            $numero = $numform->getValues();
            if ($this->getRequest()->isPost()) {

                if ($validTel->isValid($numero)) 
                {
                   echo "OK";
                } else {
                    echo "NO OK ";    
                }
            }



        }
    }

    echo $numform;
    exit;

} 查看助手:

 $bdd_NumTel = new Front_Model_DbTable_NumTel();
    $this->view->numeros = $bdd_NumTel->fetchAll($bdd_NumTel->select()
                                                            ->from('num_tel',
                                                              array('name','numero'))                                                                                   
                                                );        

return $this;

观点:

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

我必须收到错误信息(或者我不知道如何找到它们:D) 我有其他形式,当我打电话给$ form时它有效 谢谢大家!

1 个答案:

答案 0 :(得分:0)

而不是覆盖Zend_Form的构造函数,你应该在init()方法中创建表单。如果你没有充分的理由这样做。

至于你的问题,你犯了一个错误。这条线

$numform = $this->view->form = new Front_Form_Numero(); 

应该是

$this->view->numform = new Front_Form_Numero();