laravel框架视图中的var$错误


var $errors in the view with the laravel framework

我使用validated方法验证请求,但视图中的var错误为空:/。

在控制器中,我有:

Route::group(['middleware' => ['web']], function () {
Route::get('/', function(){
    return view('home'); 
})->name('home'); 
Route::group(['prefix' => 'do'], function($name = null){

Route::get('/{action}/{name?}', ['uses' => 'controllers@get', 'as' =>                                                                  'get']); 

    Route::post('/', ['uses' => 'controllers@post', 'as' => 'post' ]);
    });
});

对于控制器,我有:

<?php namespace App'Http'Controllers;
use App'Http'Controllers'Controller;
use Illuminate'Http'Request;

class controllers extends Controller
 {
  public function get($action, $name=null)
  {
   return view('actions.' . $action, ['name' => $name]);
  } 
  public function post(Request $request)
  {

 $this->validate($request, [
     'action' => 'required',
     'name' => 'alpha|required'
 ]);
 return view('actions.'.$request['action'] , ['action' =>        $request['action'], 'name'=>$this->transformName($request['name'])]);  
}
private function transformName($name)
{
  $add = "king ";
   return $add.strtoupper($name);
 }
}

对于视图,我有:

@extends('layouts.master')
@section('content')
    <div class="centered">
        <a href="{{route('get', ['action' => 'greet'])}}">greet</a> 
        <a href="{{route('get', ['action' => 'hug'])}}">hug</a>
        <a href="{{route('get', ['action' => 'kiss'])}}">kiss</a>
        <br >
        <br >
         @if (isset($errors) && count($errors) > 0)
       <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                {!! $errors->first() !!}
            @endforeach
        </ul>
    </div>
        @endif      
        <form action="{{ route('post')}}" method="post">
            <label for="select-action">I want to...</label>
            <select id="select-action" name="action">  
                <option value="greet">greet</option>
                <option value="hug">hug</option>
                <option value="kiss">kiss</option>
            </select>
            <input type="text" name="name"> 
            <button type="submit">action</button>
            <input type="hidden" name="_token" value="{{Session::token()}}"> 
        </form>
    </div>
   @endsection

如果我删除了路由的中间件,var错误就会正常工作。

我该怎么解决这个问题?

谢谢。

如果您使用的是最新的Laravel 5.2版本,则应该从routes中删除web中间件。现在它会自动应用于所有路线,如果您试图手动添加它,会导致不同的错误。