title: How to use session for all controllers in Laravel 5.6
body: <p>I have seen some posts, like<br>
  <a href="https://stackoverflow.com/questions/39119817/laravel5-cant-get-sessions-working?rq=1">Laravel5 - can't get Sessions working</a><br>
  <a href="https://stackoverflow.com/questions/29346743/laravel-5-session-doesnt-work?rq=1">Laravel 5 - session doesn't work</a>  </p>
  
  <p>But I didn't get a solution for what I want.  </p>
  
  <p>I'm trying to build a multi language site. I use session to store this.<br>
  I know that in my controller, like ProductController, function index(){}, I can do like this  </p>
  
  <pre><code>$this-&gt;request-&gt;session()-&gt;put('locale', 'en');
  $this-&gt;request-&gt;session()-&gt;keep('locale');
  $value = $this-&gt;request-&gt;session()-&gt;get('locale');
  dd($value);
  dd(Session::all());
  
  Session::put('locale', 'en');
  Session::keep('locale');
  Session::save();
  $value = $this-&gt;request-&gt;session()-&gt;get('locale');
  dd($value);
  dd(Session::all());
  </code></pre>
  
  <p>But I want to use in Controller.php, so I only need to do the session set and get only once, not in every controller I created.  </p>
  
  <pre><code>&lt;?php
  
  namespace App\Http\Controllers;
  
  use Illuminate\Foundation\Bus\DispatchesJobs;
  use Illuminate\Routing\Controller as BaseController;
  use Illuminate\Foundation\Validation\ValidatesRequests;
  use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  use Session;
  
  class Controller extends BaseController
  {
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  
    public function __construct()
    {
      Session::put('locale', 'zh');
      Session::save('locale');
      $value = Session::get('locale');
      dd($value);
      dd(Session::all());
    }
  }
  </code></pre>
  
  <p>But this doesn't work. Or I should do this in some place, some after middleware, I'm not familiar with this. Can someone give me some suggestions?</p>