Validation 如何在Laravel验证中编写一个if条件,以在且仅在所有属性都失败时执行

Validation 如何在Laravel验证中编写一个if条件,以在且仅在所有属性都失败时执行,validation,laravel,Validation,Laravel,我想重定向一个用户到另一个页面,如果他输入了5个属性的重复数据(如果只复制了4个或更少,他不应该被重定向)。 我正在尝试使用Laravel5.1的内置验证器 $failure = Validator::make($request->all(), [ 'firstName' => 'unique:registrations', 'lastName' => 'unique:registrations', 'line1' =&g

我想重定向一个用户到另一个页面,如果他输入了5个属性的重复数据(如果只复制了4个或更少,他不应该被重定向)。 我正在尝试使用Laravel5.1的内置验证器

    $failure = Validator::make($request->all(), [
        'firstName' => 'unique:registrations',
        'lastName' => 'unique:registrations',
        'line1' => 'unique:registrations',
        'city' => 'unique:registrations',
        'country' => 'unique:registrations'
    ]);
如果上述5个属性全部失败,如何编写执行的if条件

if ($failure->fails())
如果至少有一个属性失败,则执行此代码。请帮助我解决问题。

$check=$failure->errors();
list($key,$messages) = array_divide($failure->errors()->toArray());
if($key == ['firstname','lastname','line1','city','country']){
    //all has failed
}
如果($check->has('firstName')&&&$check->has('lastName')&&&$check->has('line1')&&&$check->has('city')&&&$check->has('country'){ 返回重定向(“”); }

如果以更合适的方式复制任何属性,则此方法都有效:

if (count($failure->getMessageBag()) >= 4) {
    return ...
}
如果只是一些领域,更美丽的方式:

if($validator->getMessageBag()->has(['firstName', 'lastName', 'line1', 'city', 'country'])) {
   return ...
}

你可以使用
errors()
getMessageBag()
-没关系:)

我没有检查你的答案是否正确,我只是从你的答案中得到了一些想法,谢谢!!!(Y)
if($validator->getMessageBag()->has(['firstName', 'lastName', 'line1', 'city', 'country'])) {
   return ...
}