Laravel显示验证错误

时间:2018-06-26 12:00:37

标签: php laravel forms validation

我尝试使用以下代码:

                @foreach($errors->all() as $error)
                    <li>{!!   $error !!}</li>
                @endforeach

并且鉴于此: screen

我希望错误被正确显示。 例如姓名为必填项。

在调试器中,我可以看到。 如何替换验证。“要求输入名称”必填 enter image description here

3 个答案:

答案 0 :(得分:1)

您需要像这样在控制器方法中添加验证。

    $request->validate([
        'name' => 'required'
    ]);

然后您可以在视图中显示验证错误:

   @if ($errors->has('name'))
      <li>{{ $errors->first('name') }}</li>
   @endif

这也应该起作用...

 <ul>
     @foreach ($errors->all() as $error)
         <li>{{ $error }}</li>
     @endforeach
</ul>

答案 1 :(得分:0)

这是处理laravel错误的一个好例子

message.blade.php

@if($errors->any())
    <div class="alert alert-danger">
        <p><strong>Opps Something went wrong</strong></p>
        <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
        </ul>
    </div>
@endif

@if(session('success'))
    <div class="alert alert-success">{{session('success')}}</div>
@endif

@if(session('error'))
    <div class="alert alert-danger">{{session('error')}}</div>
@endif

例如,在您的控制器更新方法中,

public function update(Request $request, $id)
    {
        $this->validate($request,[
            'title'=>'required',
            'body'=>'required'
        ]);
       //the above validation is important to get the errors caught 
        $post= Post::find($id);
        $post->title = $request->input('title');
        $post->body = $request->input('body');

        $post->save();

        return redirect('/posts')->with('success','Updated successfully');
    }

如果您有一个布局文件作为layout.blade.php注意:在布局文件中显示错误会有利于将消息用于所有目的。

...
<div class="container">
    @include('message')
    @yield('content')
</div>
...

答案 2 :(得分:0)

好的,我发现了错误。我没有其他语言可以上传。 在文件app / config.php中,将'locale'=>'pl'替换为'en'