Zend表单问题:表单元素未显示

时间:2011-08-11 10:48:26

标签: forms zend-framework

我是Zend Framework的新手。我正在尝试制作一个简单的登录表单,但是我遇到了一个我不知道解决方案的问题。问题是表单元素没有显示。而是创建表单标记(我可以通过页面源代码看到它)。为什么在创建表单标记时不会显示表单元素。这是代码。

文件申请/表格/ Account.php

class Application_Form_Account extends Zend_Form
{
public function init()
{

   // Initiate form
   $this->setAction('account/login-exec');
   $this->setMethod('post');
   $this->setName('login-form');

   // Add form elemen: username
   $username = new Zend_Form_Element_Text('username');
   $username -> setLabel('User Name');
    // Add form element: Password
    $password = new Zend_Form_Element_Password('password');
    $password -> setLabel('Password');
    // Add form elemet: Submit button
    $submitButton = new Zend_Form_Element_Submit('submit');
    $submitButton -> setLabel('Post Data');

}
}

文件应用程序/ controllers / AccountControllers.php

class AccountController extends Zend_Controller_Action
{

public function init()
{      
}

public function indexAction()
{
    // Show the login form in view
    $form = new Application_Form_Account();

    $this->view->pageHeading = "Please Login!!";

    $this->view->form = $form;
}
}

文件application / views / index.phtml

<h1><?php echo $this->pageHeading ?></h1>

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

在视图中,显示了pageHeading和form标签,但没有元素。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您没有在表单中添加任何元素。在表单的init()方法中,使用addElement(),例如

$this->addElement($username);

请参阅http://framework.zend.com/manual/en/zend.form.quickstart.html#zend.form.quickstart.elements

答案 1 :(得分:0)

您实际上是在创建表单元素,但没有将其固定/附加到表单中。您可以将其视为三步流程 1.创建Zend Form元素,如
    $selector = new Zend_Form_Element_Select('reseller_id');
2.添加属性,验证器或过滤器,如
    $selector->setLabel('Reseller') ->setRequired(false) ->setMultiOptions($pairs);
3.将此元素附加到表格
    $this->addElement($selector);

完整代码:
        $selector = new Zend_Form_Element_Select('reseller_id');
        $selector->setLabel('Reseller')
        ->setRequired(false)
        ->setMultiOptions($pairs);
    $this->addElement($selector);