不应静态调用非静态方法 Cartalyst\Sentinel\Sentinel::getUser()
Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically
您好,我正在使用 laravel Sentinel 作为我的身份验证,我也在尝试使用 laravel 审计,我得到了 "Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically".
在我的用户模型中,我添加了一个静态函数 resolveId() 用于在 Laravel 审计 'audits' table
中添加 user_id
public static function resolveId(){
return Sentinel::getUser()->getUserId();
//return auth()->check() ? auth()->user()->getAuthIdentifier() : null;
}
当我尝试使用 \Sentinel::getUser() 时出现以下错误。
Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically
将此 use
放在相关文件的顶部:
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
来自the docs:
After installing the package, open your Laravel config file located at config/app.php
and add the following lines.
In the $aliases
array add the following facades for this package.
'Sentinel' => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,
然后将其添加到 class 的顶部:
use Sentinel;
我知道包版本 @manikandan k 寻求帮助是 4.x or 5.x,而文档确实提到了 [=23] 的用例=]Sentinel,它没有提供一个实际的例子。
自版本 6.x 以来,Audit Resolvers 文档就有这个用例,其中使用了 Sentinel相反。
我建议将解析器逻辑更新为以下内容:
return Sentinel::check() ? Sentinel::getUser()->getUserId() : null;
当用户未登录时,这将阻止在 null
上调用 getUserId()
。
您好,我正在使用 laravel Sentinel 作为我的身份验证,我也在尝试使用 laravel 审计,我得到了 "Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically".
在我的用户模型中,我添加了一个静态函数 resolveId() 用于在 Laravel 审计 'audits' table
中添加 user_idpublic static function resolveId(){
return Sentinel::getUser()->getUserId();
//return auth()->check() ? auth()->user()->getAuthIdentifier() : null;
}
当我尝试使用 \Sentinel::getUser() 时出现以下错误。
Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically
将此 use
放在相关文件的顶部:
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
来自the docs:
After installing the package, open your Laravel config file located at
config/app.php
and add the following lines. In the$aliases
array add the following facades for this package.
'Sentinel' => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,
然后将其添加到 class 的顶部:
use Sentinel;
我知道包版本 @manikandan k 寻求帮助是 4.x or 5.x,而文档确实提到了 [=23] 的用例=]Sentinel,它没有提供一个实际的例子。
自版本 6.x 以来,Audit Resolvers 文档就有这个用例,其中使用了 Sentinel相反。
我建议将解析器逻辑更新为以下内容:
return Sentinel::check() ? Sentinel::getUser()->getUserId() : null;
当用户未登录时,这将阻止在 null
上调用 getUserId()
。