Zend框架在哪里声明所有页面中出现的值

时间:2010-11-28 09:07:09

标签: zend-framework

我的登录表单显示在页面顶部。仅当用户未在所有页面中登录时才会出现。我应该在哪里声明生成登录表单的类,以便我可以在我的布局中使用它。 我试过我的引导课程

protected function _initView(){
    $this->bootstrap('view');
    $view = $this->getResource('view');
    $view->headLink()->appendStylesheet($view->baseUrl('/css/default.css'));
$auth = Zend_Auth::getInstance();       
if(!$auth->hasIdentity()) { 
        $login = new Application_Form_User();
        $view->login = $login;
    }

}
也没用。我也试过

protected function _initView(){
    $view = new Zend_View();
    $view->headLink()->appendStylesheet('http://localhost/backend/public/css/default.css');
    $auth = Zend_Auth::getInstance();       
    if(!$auth->hasIdentity()) { 
            $login = new Application_Form_User();
            $view->login = $login;
}}

3 个答案:

答案 0 :(得分:6)

像这样创建一个视图助手:

class Application_View_Helper_LoginForm
{
    public function loginForm()
    {
        $auth = Zend_Auth::getInstance();

        if(!$auth->hasIdentity())
        {
            $login = new Application_Form_User();
            return $login;
        }
    }
}

您还必须在Bootstrap中注册视图助手路径。参数1是路径,参数2是类名的前缀。

protected function _initViewHelpers()
{
    $this->bootstrap('view');
    $view = $this->getResource('view');

    $view->addHelperPath(APPLICATION_PATH . '/views/helpers/', 'Application_View_Helper');
}

然后要显示表单,请在布局中添加以下代码:

<?php echo $this->loginForm(); ?>

答案 1 :(得分:1)

使用视图帮助程序显示表单/“已登录”文本。

您可以使用特定的控制器操作来处理表单或使用控制器操作助手来处理任何页面上的登录表单提交。

答案 2 :(得分:0)

使用前端控制器插件。 见http://devzone.zend.com/article/3372