CakePHP 3:如何正确检查用户是否已登录

ric*_*ere 6 php cakephp-3.0

在CakePHP 3中,我找到了两种方法来查找用户是否已登录.

第一解决方案

if(!is_null($this->Auth->user('id'))){
        // Logged in
}
Run Code Online (Sandbox Code Playgroud)

第二解决方案

if (!is_null($this->request->session()->read('Auth.User.id'))) {
    // Logged in
}
Run Code Online (Sandbox Code Playgroud)

我认为第一个更好,因为它简洁明了.

有没有更好的方法来验证用户是否已登录?

我不是在寻找速度.我想用一种干净而富有表现力的方式来编写它.

Kam*_*ris 17

我认为最好的方法就是:

if ($this->Auth->user()) {...}
Run Code Online (Sandbox Code Playgroud)

  • 但这会给出"致命错误:未捕获错误:在布尔值上调用成员函数user()".我在`AppController`中使用此代码 (2认同)