Laravel 5.2验证工作但$ errors变量为空

时间:2016-04-08 02:37:30

标签: php validation laravel-5.2

我一直在寻找类似的问题,并尝试了每一个答案。验证器检查规则并重定向。但是我的观点中的$ errors变量仍然是空的。

控制器:

public function postSlidesAdd(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'priority' => 'required',
            'text' => 'required',
            'image' => 'required'
        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator);
        }
        //insert to db and redirect back
    }

路线:

Route::group(['middleware' => ['web']], function () {
    Route::post('/admin/slides/add', [
        'uses' => 'SitesController@postSlidesAdd',
        'as' => 'admin.slides.add'
    ]);
});

查看:

<div class="">
            @if(count($errors)>0))
                <ul>
                    @foreach($errors->all() as $error)
                        <li>{{$error}}</li>

                    @endforeach
                </ul>

            @endif
        </div>

我想我错过了一些小而重要的事情,请帮忙。 我正在使用Laravel 5.2.29

更新: 如果这有任何帮助;在我的控制器中:

if ($validator->fails()) {
        dd($validator->errors());
        return back()->withErrors($validator);
    }

这会转储数组'messages',而另一个数组包含[input names =&gt;错误信息]。我认为这是要发送给视图的数组,但它没有通过。请帮助我做错了什么。

2 个答案:

答案 0 :(得分:4)

app\Http\Kernel.php移动\Illuminate\Session\Middleware\StartSession::class从'网络'$middlewareGroups$middleware

答案 1 :(得分:0)

您的视图文件出错;你有一个额外的括号。尝试更改此内容:

@if(count($errors)>0))

对此:

@if(count($errors) > 0)

此外,在您的控制器中,尝试更改:

return redirect()->back()->withErrors($validator);

对此:

return back()->withErrors($validator);