当 _confirmation 字段不正确时,我找不到让 Laravel 突出显示正确字段的方法。
使用 Bootstrap 布局,我的表单中有一个 email 和 email_confirmation 字段,如下所示:
<div class="control-group {{$errors->has('email') ? 'error' : ''}}">
{{ Form::label('email', 'Email', array('class' => 'control-label'))}}
<div class="controls">
{{ Form::email('email', Input::old('email'));}}
{{ $errors->first('email', Form::block_help(':message')) }}
</div>
</div>
<div class="control-group {{$errors->has('email_confirmation') ? 'error' : ''}}">
{{ Form::label('email_confirmation', 'Confirm Email', array('class' => 'control-label'))}}
<div class="controls">
{{ Form::email('email_confirmation', Input::old('email_confirmation'));}}
{{ $errors->first('email_confirmation', Form::block_help(':message')) }}
</div>
</div>
因此,如果用户输入了无效的电子邮件地址,则“电子邮件”字段将附加一个错误,并且正确的标签/字段将突出显示。
但是,如果用户在第一个字段中输入了有效/正确的电子邮件地址但确认错误 - 返回的错误仍然是“电子邮件”字段,而不是 email_confirmed 字段。
对我来说,当错误实际上与 email_confirmation 字段有关时,突出显示电子邮件字段看起来很奇怪。
据我从这个stackoverflow问题中可以理解,我可能会做类似的事情
{{$errors->first('email', ':message') == 'Please confirm your email address correctly.' ? 'error' : ''}}
这将起作用,但问题是我正在运行一个多语言站点,因此返回的 :message 将成为许多可能性之一。
我想我可以编写一个函数来比较 :message 与每种语言的消息数组,但我想我会检查是否有更简单的方法来解决它。
干杯!