当_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字段中突出显示电子邮件字段,那么看起来很奇怪。
据我所知this stackoverflow question,我可能会做类似
的事情{{$errors->first('email', ':message') == 'Please confirm your email address correctly.' ? 'error' : ''}}
这样可行,但问题是我正在运行一个多语言网站,因此:返回的消息将成为众多可能之一。
我想我可以编写一个函数来比较:消息与每种语言的消息数组,但我想我会检查是否有更简单的方法去处理它。
干杯!
答案 0 :(得分:2)
如果标题字段为空,这就是我显示内联错误的方式:
<div class="form-group @if ($errors->has('title')) has-error @endif">
{{ Form::label('title', 'Title') }}
{{ Form::text('title', null, array('class' => 'form-control')) }}
@if ($errors->has('title')) <p class="help-block">{{ $errors->first('title') }}</p> @endif
</div>
我的验证规则:
public static $rules = array(
'title' => 'required',
);
使用Laravel 4和Bootstrap 3。
答案 1 :(得分:-2)
或者您可以在某处打印所有错误消息
$messages = $validator->messages();
echo '<ul>';
foreach ($messages->all() as $message)
{
echo '<li>'.$message.'</li>';
}
echo '</ul>';