【问题标题】:Laravel validation error not showing in view, only showing in 422 post errorLaravel 验证错误未显示在视图中,仅显示在 422 发布错误中
【发布时间】:2020-05-01 18:07:37
【问题描述】:

当我尝试发送没有标题输入的发布请求时,我无法弄清楚为什么 laravel 验证错误消息没有显示在我当前的刀片视图文件中。

我会收到 422 发布错误。

upload.blade.php

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

<input type="text" name="title" id="title" placeholder="enter post title" />

上传控制器.php

public function store(Request $request)
{
   $photos = $request->file('file');
   $title = $request->input('title');

   $this->validate($request, [
        'title' => 'required|max:120',
   ]);
}

当我检查 422 POST 错误时,它才会显示错误消息

【问题讨论】:

    标签: php laravel validation


    【解决方案1】:

    如果您使用的是标准表单,则需要返回返回视图才能看到错误。比如:

    return \Redirect::back() // can send errors, or with() or whatever
    

    如果您使用 ajax 发送信息,则需要通过 successerror 方法处理响应,具体取决于您希望如何处理错误。在这种情况下,您的 store() 方法会将某种文本发送回 ajax。

    归根结底,您需要从您的 store() 方法中返回一些内容以返回您所在的视图,否则您将看不到任何内容,除非您检查它。

    【讨论】:

    • 我认为在控制器中使用 laravel 验证方法会在出现错误时自动重定向。
    猜你喜欢
    • 2020-02-15
    • 2012-12-14
    • 2019-06-15
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2018-12-05
    相关资源
    最近更新 更多