在 laravel 的 AppServiceProvider 中使用身份验证
Posted
技术标签:
【中文标题】在 laravel 的 AppServiceProvider 中使用身份验证【英文标题】:use authentication in a AppServiceProvider in laravel 【发布时间】: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)
【问题讨论】:
【参考方案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。以上是关于在 laravel 的 AppServiceProvider 中使用身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 外部的包中使用 Laravel 外观(缓存、日志、存储)
Laravel 如何在会话 Laravel 中存储额外的数据/值
Laravel - 在数据库中保存或插入图像数组 - Laravel