2
我创建了一个这样的表单:如何在视图中呈现表单元素?
class Form_Login extends Zend_Form {
public function __construct() {
$this->setMethod('post');
$elements = array();
// username
$element = $this->addElement('text', 'username', array('label' => 'Username'));
$elements[] = $element;
// password
$element = $this->addElement('password', 'password', array('label' => 'Password'));
$elements[] = $element;
// submit
$element = $this->addElement('submit', 'submit', array('label' => 'Login'));
$elements[] = $element;
$this->addElements($elements);
$this->addDecorator('ViewHelper');
$this->setDecorators(array(array('ViewScript', array('viewScript' => 'authentication/login-form.phtml'))));
}
}
现在 login-form.phtml文件我渲染这样的元素:
<form action='submitlogin' method='post' id='loginform'>
Login Form
<?= $this->form->getElement('username'); ?>
<?= $this->form->getElement('password'); ?>
</form>
它给了我以下错误:
Fatal error: Call to a member function getElement() on a non-object in
/var/www/student/application/views/scripts/authentication/login-form.phtml on line 5
如何在外部脚本中渲染元素...
+1确定。它将您的上述答案与标签和textfield一起渲染。我如何分别渲染标签和文本框。谢谢 – Student 2011-05-15 13:38:21
@Student,看看我的变化。 – pltvs 2011-05-15 14:04:35
请注意,$ this-> element-> username中的'element'指的是表单对象,而不是实际的元素。 $ this-> element-> username然后引用Form_Element对象。只是一点编码习惯。 – Martijn 2011-05-15 14:35:52