Laravel MessageBag 错误数组在视图中为空,但如果我杀死脚本则包含内容

bri*_*kip 2 validation laravel

我试图将错误返回给我的视图,这是我的控制器 TestcategoryController 的一部分

    $rules =array(
        'name' => 'required'
    );
    $validator = Validator::make(Input::all(), $rules);
    //process
    if($validator->fails()){
        return Redirect::to('testcategory/create')->withErrors($validator);
    }
Run Code Online (Sandbox Code Playgroud)

在视图中,testcategory/create如果我尝试输出类似的错误

        @if($errors->any())         
            {{ $errors->first('name') }}
        @endif
Run Code Online (Sandbox Code Playgroud)

我什么也得不到。但如果{{dd($errors)}}我得到

      object(Illuminate\Support\ViewErrorBag)#91 (1) { ["bags":protected]=> array(1) { 
      ["default"]=> object(Illuminate\Support\MessageBag)#92 (2) 
      { ["messages":protected]=>   array(1) 
      { ["name"]=> array(1) { [0]=> string(27) "The name field is required." } }  
      ["format":protected]=> string(8) ":message" } } }
Run Code Online (Sandbox Code Playgroud)

我收到错误的唯一方法是杀死脚本。我究竟做错了什么?

Man*_*ddy 7

可能另一个问题是 $errors 没有保存到会话变量 $errors 并且视图中没有显示任何内容。

这是同一问题的示例:http : //laravel.io/forum/03-28-2016-errors-variable-empty-after-failed-validation

对我来说,上面链接中定义的解决方案有效。解决方法:是在 app\Http\Kernel.php\Illuminate\Session\Middleware\StartSession::class,从 $middlewareGroups移动 到 $middleware

在此处输入图片说明

在此处输入图片说明