如何在Laravel AppServiceProvider中读取会话变量值以获取登录数据?

时间:2019-03-07 03:12:57

标签: laravel

使用Laravel 5.7 dd($user)我的变量后,我总是得到NULL值。

这是我的代码:

public function boot()
{
    Schema::defaultStringLength(191);
    $notifications = Messages::where('is_read', 0)->limit(5)->get();
    $user = User::where('id', session('user'))->first();
    dd($user);
    View::share('logged_user', $user);
    View::share('notifications', $notifications);
}

1 个答案:

答案 0 :(得分:1)

您不能直接从服务提供商处读取会话:

在Laravel中,会话由StartSession中间件处理,该中间件在所有服务提供商boot阶段之后执行。

如果要与所有视图共享会话变量,则可以使用服务提供商的视图composer

    public function boot()
    {
        view()->composer('*', function ($view) 
        {
            // dd(\Session::get('var')) not work. Its work on view.
            $view->with('your_var', \Session::get('var') );    
        });  
    }