Thursday, January 6, 2022

[FIXED] Laravel: How to access session value in AppServiceProvider?

Issue

Is there any way available to access Session values in AppServiceProvider? I would like to share session value globally in all views.


Solution

You can't read session directly from a service provider: in Laravel the session is handled by StartSession middleware that executes after all the service providers boot phase

If you want to share a session variable with all view, you can use a view composer from your service provider:

public function boot()
{
    view()->composer('*', function ($view) 
    {
        $view->with('your_var', \Session::get('var') );    
    });  
}

The callback passed as the second argument to the composer will be called when the view will be rendered, so the StartSession will be already executed at that point



Answered By - Moppo

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.