我想将用户重定向到另一个页面,如果他将重复数据输入到5个属性(如果仅重复4个或更少,则不应重定向)。 我正在尝试使用laravel 5.1内置的Validator。
utf8_encode_deep($query);
如果上述所有5个属性都失败,如何编写if条件,
$failure = Validator::make($request->all(), [
'firstName' => 'unique:registrations',
'lastName' => 'unique:registrations',
'line1' => 'unique:registrations',
'city' => 'unique:registrations',
'country' => 'unique:registrations'
]);
如果至少有一个属性失败,则执行此代码。请帮我解决一下。
答案 0 :(得分:1)
list($key,$messages) = array_divide($failure->errors()->toArray());
if($key == ['firstname','lastname','line1','city','country']){
//all has failed
}
答案 1 :(得分:0)
$check = $failure->errors();
if ($check->has('firstName') && $check->has('lastName') && $check->has('line1') && $check->has('city') && $check->has('country')) {
return redirect('<path>');
}
这很有用
答案 2 :(得分:0)
如果无论哪种属性重复更合适的方式:
if (count($failure->getMessageBag()) >= 4) {
return ...
}
如果仅针对某些领域,更美丽的方式:
if($validator->getMessageBag()->has(['firstName', 'lastName', 'line1', 'city', 'country'])) {
return ...
}
您可以使用errors()
或getMessageBag()
- 无论如何:)