title: Display validation errors in Laravel 5.2 - $errors variable is empty
body: <p>I am trying to display validation errors when going back to a View, in Laravel 5.2. The $errors variable is empty and in a similar question <a href="https://stackoverflow.com/questions/34438463/laravel-5-2-errors-not-appearing-in-blade">Laravel 5.2 $errors not appearing in Blade</a> it has been proposed to:</p>
  
  <p>(1) move the ShareErrorsFromSession middleware to the $middleware property </p>
  
  <p>or</p>
  
  <p>(2) wrap the relevant route with web middleware. </p>
  
  <p>Of course, solution 1 (which works) is not applicable in my case because I have some API routes, as it is well stated in <a href="https://stackoverflow.com/questions/34420590/laravel-5-2-validation-errors">Laravel 5.2 validation errors</a>.  </p>
  
  <p>To be more specific, I am using multiple authentication guard drivers and routes that use token authentication are stateless. So what us left is solution 2. It  should work, but it doesn't work (OR I am missing something). 
  No matter if I place my routes (the ones in which I want to display validation errors) inside the group:</p>
  
  <pre><code>Route::group(['middleware' =&gt; ['web','auth:web']], function () {        
      ...
  } 
  </code></pre>
  
  <p>or just inside:</p>
  
  <pre><code>Route::group(['middleware' =&gt; 'web'], function () {
      ...
  }
  </code></pre>
  
  <p>the $errors variable seems empty. Dumping the variable gives:</p>
  
  <pre><code>object(Illuminate\Support\ViewErrorBag)#209 (1) {
    ["bags":protected]=&gt;
    array(0) {
    }
  }
  </code></pre>
  
  <p>The web group is typically defined in kernel.php as:</p>
  
  <pre><code>protected $middlewareGroups = [
          'web' =&gt; [
              \App\Http\Middleware\EncryptCookies::class,
              \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
              \Illuminate\Session\Middleware\StartSession::class,            
              \Illuminate\View\Middleware\ShareErrorsFromSession::class,
              \App\Http\Middleware\VerifyCsrfToken::class,
          ],
  
          'api' =&gt; [
              'throttle:60,1',
          ],
      ];
  </code></pre>
  
  <p>My controller looks like:</p>
  
  <pre><code>$form = Input::all();   
  $rules = Config::get('validation.contact');            
  $validation = Validator::make($form,$rules);
  
  if ($validation-&gt;fails()){             
      return Redirect::back()-&gt;withErrors($validation);
  } else {
      ...
  }
  </code></pre>
  
  <p>Any ideas?</p>
  
  <p>UPDATE (after answered):</p>
  
  <p>You were right Alexander! I missed that recent change. But what about API routes that need not invoke these middlewares? Should we revert this change as described in <a href="https://stackoverflow.com/questions/36478187/web-middleware-being-applied-to-api-routes-in-laravel-5-2/36478268">Web middleware being applied to API routes in Laravel 5.2</a> ? If yes, then maybe it is better to strip middlewares from web group and put them in a new group (e.g myweb). This way we are not messing with the framework.</p>