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

San*_*kha 1 zend-framework

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

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;
    }
Run Code Online (Sandbox Code Playgroud)

}
没有任何工作.我也试过了

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;
}}
Run Code Online (Sandbox Code Playgroud)

mot*_*sch 6

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

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

        if(!$auth->hasIdentity())
        {
            $login = new Application_Form_User();
            return $login;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

    $view->addHelperPath(APPLICATION_PATH . '/views/helpers/', 'Application_View_Helper');
}
Run Code Online (Sandbox Code Playgroud)

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

<?php echo $this->loginForm(); ?>
Run Code Online (Sandbox Code Playgroud)