是否可以从视图助手加载Zend_Form?我在登录操作方法中使用此表单。但我也希望这个表单在每个页面的导航上都可见(所以没有实际调用登录操作),表单的post方法将发送到登录操作方法。
我猜它应该用视图助手来完成,但我不知道如何。
有什么想法吗?
我试过这个: 我的助手:
class Zend_View_Helper_LoginForm
{
function getLoginForm(){
$form = new Form_LoginForm();
return $form;
}
}
我从我的布局中调用它,如下所示:
<?php echo $this->form(); ?>
但这不起作用。 (我可以通过动作方法调用相同的表格!)
在这种情况下,它给了我这个错误(这没有意义,因为我的助手只有9行长):
Warning: Missing argument 1 for Zend_View_Helper_Form::form() in C:\xampplite\htdocs\zendpr\library\Zend\View\Helper\Form.php on line 44
答案 0 :(得分:3)
您的视图助手应该扩展Zend_View_Helper_Abstract类,并且视图助手的方法必须与该类具有相同的名称:
class Zend_View_Helper_LoginForm extends Zend_View_Helper_Abstract
{
function loginForm() {
$form = new Form_LoginForm();
return $form;
}
}
你在视图脚本中这样称呼它:
echo $this->loginForm();
如果你打电话:
echo $this->form();
您正在使用视图助手Zend_View_Helper_Form
答案 1 :(得分:0)
让你的View_Helper扩展Zend_View_Helper_Abstract并覆盖setView()
class Zend_View_Helper_XX extends Zend_View_Helper_Abstract {
public $view;
public function setView(Zend_View_Interface $view)
{
$this->view = $view;
}
在控制器操作中初始化表单并设置表单引用
// controller action code
$this->view->form = $form;
然后在视图帮助器中,您可以通过视图
引用表单// view helper code
$this->view->form;
答案 2 :(得分:0)
class Zend_View_Helper_LoginForm extents Zend_Form {
function getLoginForm(){
$form = new Form_LoginForm();
return $form;
}
}
OR
$this->view->form=$form;
两者都将返回表格。视图表单更具体的视图。
将此添加到您的phtml视图文件
echo $this->form();
要回答此问题 - 删除括号
应该是
echo $this->form;