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



我是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');
}
}

文件应用程序/控制器/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;
}
}

文件应用程序/视图/index.phtml

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

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

谢谢你的帮助

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

$this->addElement($username);

看到http://framework.zend.com/manual/en/zend.form.quickstart.html zend.form.quickstart.elements

您实际上是在创建表单元素,但没有将其固定/附加到表单。您可以假设这是三个步骤的过程

  1. 创建Zend Form元素
$selector = new Zend_Form_Element_Select('reseller_id');
  • 添加属性、验证器或过滤器,如
  • $selector->setLabel('Reseller')
        ->setRequired(false)
        ->setMultiOptions($pairs);
    
  • 将此元素添加到Form
  • $this->addElement($selector);
    

    完整代码:

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

    相关内容

    • 没有找到相关文章

    最新更新