首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非静态方法Cartalyst\Sentinel\Sentinel::getUser()不应静态调用

非静态方法Cartalyst\Sentinel\Sentinel::getUser()不应静态调用
EN

Stack Overflow用户
提问于 2018-02-10 13:02:58
回答 3查看 1.1K关注 0票数 2

嗨,我用拉拉哨兵作为我的八月,我也尝试使用拉拉审核我得到“非静态方法Cartalyst\哨兵\哨兵::getUser()不应该被静态调用”。

在我的用户模型中,我添加了一个静态函数resolveId(),用于在Laravel审计‘审核’表中添加user_id

代码语言:javascript
复制
public static function resolveId(){
    return Sentinel::getUser()->getUserId();
    //return auth()->check() ? auth()->user()->getAuthIdentifier() : null;
}

当我尝试使用\Sentinel::getUser()时,我得到了下面的错误。

代码语言:javascript
复制
Non-static method Cartalyst\Sentinel\Sentinel::getUser() should not be called statically
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-10 13:08:11

来自医生们

安装软件包后,打开位于config/app.php的Laravel文件,并添加以下行。在$aliases数组中,为该包添加以下外观。

代码语言:javascript
复制
'Sentinel' => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,

然后将其添加到类的顶端:

代码语言:javascript
复制
use Sentinel;
票数 3
EN

Stack Overflow用户

发布于 2018-02-10 13:06:29

将这个use放在有问题的文件之上:

代码语言:javascript
复制
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
票数 0
EN

Stack Overflow用户

发布于 2018-02-22 21:51:21

我知道包版本@manikandan 是在向4.x5.x求助,虽然文档中确实提到了Sentinel的用例,但它没有提供一个实际的示例。

自从6.x版本以来,审计解决程序文档就有了这个用例,取而代之的是使用哨兵

我建议更新解析器逻辑如下:

代码语言:javascript
复制
return Sentinel::check() ? Sentinel::getUser()->getUserId() : null;

这将防止在没有记录用户的情况下在null上调用null

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48721081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档