在视图中循环验证错误

Joh*_*ean 2 php validation laravel laravel-4

我正在使用Laravel的表单验证功能,并试图找出如何在视图中循环表单错误.目前,我使用以下代码成功验证了表单:

public function create()
{
    $validator = Validator::make(
        Input::all(),
        array(
            'username' => 'required|alpha_num|unique:users',
            'email' => 'email|unique:users',
            'password' => 'required|min:6',
            'passwordConf' => 'required|same:password'
        )
    );

    if ($validator->fails())
    {
        return Redirect::to('join')->withErrors($validator);
    }

    return View::make('user/join')->with();
}
Run Code Online (Sandbox Code Playgroud)

验证器成功验证表单并join在验证失败时重定向到路由.显然,我还想向用户显示验证消息.我有一个master.blade.php布局文件,我的所有视图都扩展,在布局中我有以下代码:

@if (Session::has('errors'))
    <div class="alert alert-danger">
        @foreach (Session::get('errors') as $error)
            Test<br />
        @endforeach
    </div>
@endif
Run Code Online (Sandbox Code Playgroud)

这似乎只有一半的工作.如果存在验证错误,则会在页面上显示警报div,但不会输出验证错误.这表明它Session::has('errors')返回true但是我显然没有正确地迭代验证错误.

如何通过发送到视图的验证错误进行迭代withErrors?

Jos*_*ber 9

$errors传递给您的视图有一个自动变量.您不必直接检查会话.

@foreach ($errors->all() as $error)
    {{ $error }}<br/>
@endforeach
Run Code Online (Sandbox Code Playgroud)

以下是文档的引用:

请注意,我们不必将错误消息显式绑定到GET路由中的视图.这是因为Laravel将始终检查会话数据中的错误,并自动将它们绑定到视图(如果可用).因此,重要的是要注意$errors,在每个请求的所有视图中始终可以使用变量,这样您就可以方便地假设$errors变量始终定义并且可以安全使用.该$errors变量将是一个实例MessageBag.