Laravel 6 - 显示验证消息的新方法

Posted

技术标签:

【中文标题】Laravel 6 - 显示验证消息的新方法【英文标题】:Laravel 6 - new way of displaying validation messages 【发布时间】:2020-03-04 22:06:49 【问题描述】:

当我使用 Laravel 5.6 时,我以这种方式在刀片中显示验证错误:

@if(session()->has('error'))
    <div class="alert alert-danger">
        !! session()->get('error') !!
    </div>
@endif

在 Laravel 6 中它不起作用。你知道正确的做法吗?

我的验证:

$this->validate($request, [
            'name' => 'required|unique:users',
            'email' => 'required|unique:users'
        ], [], []);

看一下 - 我不想那样显示消息:

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

我想要一个notifications.blade.php 文件,用于显示所有错误。这就是为什么我需要实现session()-&gt;has('error')

那个解决方案并没有解决问题......

@if ($errors->has('username'))
    <span class="invalid-feedback" role="alert">
        <strong> $errors->first('username') </strong>
    </span>
@endif
<input type="text" name="username">

【问题讨论】:

您认为显示错误的方式是什么?请多解释。 看,在问题的开头。 所以 session()-&gt;has('error') 不能在 laravel 6 中工作,对吧? 是的,就是这样 【参考方案1】:

您可以显示每个输入名称的验证错误

@if ($errors->has('username'))
    <span class="invalid-feedback" role="alert">
        <strong> $errors->first('username') </strong>
    </span>
@endif
<input type="text" name="username">

【讨论】:

这不是解决方案,因为我想要一个通知.blade.php 文件来显示所有错误。这就是为什么我需要实现 session()->has('error') 如何将此错误传递给您的视图? $errors 是验证失败的结果,必须始终循环。 session()-&gt;get('error') 是手动添加到重定向或视图的单个字符串。 以旧的方式,我在问题的开头就这样做了 我想这样显示:!! session()->get('error') !! 是的,但它在您的控制器中看起来如何?【参考方案2】:

请检查下面的代码sn-ps:

<input type="text" class="form-control" id="name" name="name" placeholder="Enter Name" value="">
 @if ($errors->has('name'))
 <span class="text-danger"> $errors->first('name') </span>
 @endif

同样,我们可以在其他形式的字段上显示验证消息。

【讨论】:

这不是解决方案,因为我想要一个通知.blade.php 文件来显示所有错误。这就是为什么我需要实现 session()->has('error')

以上是关于Laravel 6 - 显示验证消息的新方法的主要内容,如果未能解决你的问题,请参考以下文章

以 JSON 形式返回验证错误消息 - Laravel 6

Laravel 5.6.7 和 Vue.js 中的自定义错误消息,尤其是组件

Laravel 中正则表达式规则的自定义验证消息?

如何验证嵌套数组并在 laravel 中显示消息

表单请求验证中的 Laravel“独特”自定义消息验证

Laravel 8.65 验证错误消息和旧值未显示在 Blade 文件中