Call to a member function hasRole () on null?

file

file

如图,为什么打印出来的 \Auth::user() 是null ,所以会一直返回 false , 就是不能斤 horizon

每天3小时...加油
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9
Jourdon

你确定你有登录用户吗?

5年前 评论

@Jourdon 有的 ,我在其他界面 使用
dd( \Auth::user() ); 打印是没问题的,但是在 AuthServiceProvider ->boot() 里面打印就出现了这个问题了,为null

5年前 评论
Jourdon

@surest 因为你打印的那个地方laravel的流程还没有走到auth,当然不存在登录用户,你试试把在Horizon::auth后面打印。

5年前 评论
Jourdon

@surest 有问题记得上图。

        \Horizon::auth(function ($request) {
            dd(\Auth::user());
            return \Auth::user()->hasRole('Founder');
        });
5年前 评论

@Jourdon

public function boot()
{
    $this->registerPolicies();
    \Horizon::auth( function ($request){
        // 是否是站长
        dd( \Auth::user() );  // 放在这个位置直接访问网页了,没有进行打印
        // return \Auth::user()->hasRole('Founder');
        return true;
    });

     // dd( \Auth::user() ); // // 放在这个位置 打印 null
}
5年前 评论
Jourdon

你还没有搞清楚这段代码是做什么的,

这段代段是在你访问horizon时会要判断用户是否为站长,如果是进入,如果否就报错。

所以你打印用户当然要在这个function里面,前提是你要访问horizon。

建议你把教程好好看一遍,这里,如果逻辑没有看懂,就算没出错,你照着敲一百遍也没用。
@surest

5年前 评论

@Jourdon 嗯嗯 我理解您的意思,谢谢哇。 可能是我某个其他地方代码出错了。逻辑的话我知道,主要是我都想测试试一试。 嗯,我再找找问题所有,到时候我自己重构一遍试试

5年前 评论
Jourdon

@surest 你还是没理解我的意思,你截图中打印的位置不对,所以会出错。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!