我有密码和确认密码输入。我已对这些输入进行了编码,以便在出现错误时输入突出显示,如下所示:
<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()”方法只检查输入是否存在错误。有没有办法检查输入是否有特定类型的错误?
答案 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'])