如果有办法检查验证器是否因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()) {
用外行的话来说,我基本上想知道:"验证失败是因为电子邮件地址不是唯一的吗?"
在返回的失败规则数组中检查特定规则
if ($validator->fails()) {
$failedRules = $validator->failed();
if(isset($failedRules['email_address']['Unique'])) {
...
这将显示一个错误并告诉您失败的原因:
控制器
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
这将返回一条消息,无论错误是什么。电子邮件不匹配。字段是必需的。胡说八道
您还可以从$消息中删除该电子邮件数组。验证器将为您处理所有这些。只有当您想要自定义消息时,才需要使用它。
您也可以尝试var_dump此语句:
var_dump($validation->errors());死亡