我是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标签,但没有元素。
感谢您的帮助
答案 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);