【问题标题】:Display Laravel Validation Errors?显示 Laravel 验证错误?
【发布时间】:2020-12-21 17:23:42
【问题描述】:

我是 Laravel 的新手, 在这里,我正在使用 Laravel 项目。我需要在表单中显示验证错误

<div class="col s12 m6">
    <div class="row">
        <div class="col s12 input-field">
            <input name="newpassword" id="newpassword" type="password" class="validate">
            <label for="newpassword"> New Password </label>
            <small class="email_error"><div class="error">@error('newpassword'){{$message}}@enderror</div></small>
        </div>
    </div>
</div>

控制器

$this->validate($request, [
    'newpassword' => 'required|min:8',
], [
    'newpassword.required' => 'New Password is required field.',
    'newpassword.min:8'    => 'Enter Minimum 8 Characters',
]);

错误:

【问题讨论】:

  • 你的问题是什么?你有一个 JSON 响应,一切似乎都正常,你只需要对该响应做一些事情
  • 请您出示您用于提交表单的javascript。
  • return back()->with('error', '你输入了错误的密码'); @Rwd
  • 那不是 JavaScript。如果您收到 json 响应,我假设您正在使用某种 ajax 来提交表单?
  • 谢谢兄弟,因为我发现了我的错误,我在一种形式中同时使用方法 ajax 或不使用 ajax,我忘记停止 ajax @Rwd

标签: laravel laravel-validation


【解决方案1】:

你可以使用$errors-&gt;any()函数

要找到答案,请查看:

Displaying the Error Messages in Laravel after being Redirected from controller

【讨论】:

    【解决方案2】:

    最简单的方法是制作一个共享刀片文件,您可以将其用于任何错误处理(会话、请求等)。该文件看起来像这样:

    @if ( session()->has('success') )
        <div class="row mb-3">
            <div class="col-sm-12">
                <div class="alert text-white" style="background-color: #47afc4;     border-radius:5px;">
                    {!! session('success') !!}
                </div>
            </div>
        </div>
    @endif
    @if ( session()->has('error') )
        <div class="row">
            <div class="col-sm-12">
                <div class="alert alert-danger">
                    {!! session('error') !!}
                </div>
            </div>
        </div>
    @endif
    @if (count($errors) > 0)
        <div class="row">
            <div class="col-sm-12">
                <div class="alert alert-danger">
                    <ul>
                        @foreach ($errors->all() as $error)
                            <li>{{ $error }}</li>
                        @endforeach
                    </ul>
                </div>
            </div>
        </div>
    @endif
    

    session()-&gt;has('success') 将捕获您在控制器中返回的任何成功会话消息:

    return redirect('your route')->with('success', 'Success message');
    

    session()-&gt;has('error') 将捕获您在控制器中返回的任何错误会话消息:

    return redirect('your route')->with('error', 'Error message');
    

    $errors-&gt;all() 将返回请求验证中的任何错误。

    然后你可以在你想要的页面中使用这个文件,只需包含它:

    @inlcude('path.to.shared.errors.file')
    

    如果您需要更多信息,请告诉我。

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2018-08-26
      • 2016-10-13
      • 2018-04-19
      相关资源
      最近更新 更多