Laravel 5:检查特定错误

时间:2017-07-06 20:13:55

标签: laravel-5

我有密码和确认密码输入。我已对这些输入进行了编码,以便在出现错误时输入突出显示,如下所示:

<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}>
    <label>Password</label>
    <input type="password" name="password" class="form-control">
</div>

<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}>
    <label>Password</label>
    <input type="password" name="password_confirmation" class="form-control">
</div>

在我的控制器中,我按如下方式验证这些输入:

$this->validate($request, [
    ....
    'password'                 => 'required|min:8|confirmed',
    'password_confirmation'    => 'required',
    ....
]);

当输入为空和/或少于8个字符时,输入将按预期高亮显示。但是,当输入不匹配时,我会逻辑地期望确认密码输入突出显示。但是,密码字段会突出显示,因为这是“已确认”规则设置为的输入。

“$ errors-&gt; has()”方法只检查输入是否存在错误。有没有办法检查输入是否有特定类型的错误?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用以下命令获取给定输入名称的错误数组:

{{ $errors->get('password') }}

因此,您可以检查密码错误数组是否有确认错误,然后将其他类添加到确认输入字段:

 @if (in_array(trans('validation.confirmed', ['attribute' => 'password']), $errors->get('password'))) has-error @endif

辅助方法可能因Laravel版本而异:

Laravel&lt; 5.4 trans('validation.confirmed', ['attribute' => 'password'])

Laravel 5.4 __('validation.confirmed', ['attribute' => 'password'])