Laravel 5:Auth :: id()在AppServiceProvider.php

时间:2018-03-09 14:53:30

标签: php laravel-5

我正在尝试在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

我在这里做错了什么?

感谢帮助人员。

1 个答案:

答案 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;
        });