CakePHP 检查用户是否在视图内登录

2022-08-30 15:44:52

我有以下代码:

    <?php

    if (!$this->Auth->user())
    {
        echo $this->element('header');
    }
    else
    {
        echo $this->element('header-bar');
    }

    ?>

在我的视图中,它应该为登录用户显示不同的标头,但会引发以下错误:

Notice (8): Undefined property: View::$Auth [APP/views/layouts/page.ctp, line 17]
Fatal error: Call to a member function user() on a non-object in /Users/cameron/Sites/thehive/app/views/layouts/page.ctp on line 17

如何解决此问题?谢谢


答案 1

您不需要只在 View 中使用它:$this->set(compact('authUser'));

if ($this->Session->read('Auth.User')){
// do something 
}

答案 2

截至 CakePHP 2.x:

<?php if (AuthComponent::user('id')): ?>
   Logged in as <?= AuthComponent::user('name') ?>
<?php endif; ?>

推荐