【问题标题】:use authentication in a AppServiceProvider in laravel在 laravel 的 AppServiceProvider 中使用身份验证
【发布时间】:2020-03-26 05:10:19
【问题描述】:

我正在使用 Laravel 所以每个登录的用户都可以有一个购物车,所以我想在我的主刀片中访问他们的购物车,因为它在标题上并在每个页面中显示所有购物车产品

所以我在 AppServiceProvider 中使用它,但我需要检查登录它的用户是否会显示购物车

    public function boot()
    {

        view()->composer('app.shop.2.layouts.master', function($view) {

          $data = \Auth::user()->cart()->get()->first()->products();
          $view->with('data', $data);
        });
    }

所以在用户登录之前一切正常,但是当用户未登录时,它会给我这个错误:

在 null 上调用成员函数 cart()(查看:F:\larav-pay\payment\resources\views\app\shop\2\index.blade.php)

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以像这样使用Auth::check() 来检查用户是否经过身份验证:

    public function boot()
    {
        view()->composer('app.shop.2.layouts.master', function($view) {
            if (Auth::check()){
                $data = \Auth::user()->cart()->get()->first()->products();
                $view->with('data', $data);
            }
        });
    }
    

    【讨论】:

    • 这是最好的方法吗?因为我认为我们不能在 appServiceProvider 中使用 auth
    • Service Provider 是应用程序实例可用的地方,其中包含绑定、事件侦听器、中间件甚至路由。所以我们也可以在 AppServiceProvider 中使用 Auth。
    猜你喜欢
    • 2021-02-08
    • 2016-09-01
    • 2019-03-15
    • 2016-05-16
    • 2016-08-03
    • 2019-08-12
    • 2019-04-01
    相关资源
    最近更新 更多