我正在尝试在Laravel 5中的AppServiceProvider.php
文件中设置一个全局变量。但是,我无法查询使用当前登录用户ID的数据库。 Auth :: id()返回null。
这是我的代码;
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
$cnv_count = Conversation::where('receiver_id', Auth::id())->count(); // This Auth::id() here returns null
view()->share(['cnv_count' => $cnv_count]);
}
public function register()
{
}
}
它不会返回任何错误但是当我尝试在AppServiceProvider.php
文件中打印Auth :: id()时,它总是返回NULL
。
我在这里做错了什么?
感谢帮助人员。
答案 0 :(得分:0)
我相信你正在使用更新的Laravel 5版本。您可能想要考虑这种用于检测经过身份验证的用户的内容。
将此添加到您的课程上方。
use Illuminate\Support\Facades\Event;
use Illuminate\Auth\Events\Authenticated;
在类方法中调用它。
Event::listen(Authenticated::class, function ($event) {
$this->data['auth'] = $event->user;
});