我是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
您实际上是在创建表单元素,但没有将其固定/附加到表单。您可以假设这是三个步骤的过程
- 创建Zend Form元素
$selector = new Zend_Form_Element_Select('reseller_id');
- 添加属性、验证器或过滤器,如
- 将此元素添加到Form
$selector->setLabel('Reseller')
->setRequired(false)
->setMultiOptions($pairs);
$this->addElement($selector);
完整代码:
$selector = new Zend_Form_Element_Select('reseller_id');
$selector->setLabel('Reseller')
->setRequired(false)
->setMultiOptions($pairs);
$this->addElement($selector);