如果有办法检查验证器是否因unique
规则而失败?
$rules = array(
'email_address' => 'required|email|unique:users,email',
'postal_code' => 'required|alpha_num',
);
$messages = array(
'required' => 'The :attribute field is required',
'email' => 'The :attribute field is required',
'alpha_num' => 'The :attribute field must only be letters and numbers (no spaces)'
);
$validator = Validator::make(Input::all(), $rules, $messages);
if ($validator->fails()) {
在外行人看来,我基本上想知道:“验证失败了,因为email_address不是唯一的吗?”
答案 0 :(得分:18)
检查返回的失败规则数组中的特定规则
if ($validator->fails()) {
$failedRules = $validator->failed();
if(isset($failedRules['email_address']['Unique'])) {
...
答案 1 :(得分:0)
这将显示错误并告诉您失败的原因:
<强>控制器强>
if($validation->fails()){
return Redirect::back()->withErrors($validation)->withInput();
}
foreach($errors->all() as $error) {
echo $error;
}
在您的刀片模板中添加以下内容:
@foreach($errors->all() as $error)
<div>
{{$error}}
</div>
@endforeach
这将返回一条消息,无论错误是什么。电子邮件不匹配。现场是必需的。 Blah blah
您也可以从$ message中删除该电子邮件数组。验证器将为您处理所有这些。如果您想要自定义消息,您只想使用它。
你也可以尝试var_dump这个语句:
的var_dump($ validation-&GT;错误());死;