Laravel 多维数组验证

Laravel multi dimensional array validation

我正在尝试验证 Laravel 中的多维数组。整个输入本身不是必需的,但是,如果它存在,它的所有键都应该有一些值。

我的输入有动态输入数组。 示例:

 $users = [    
    ['name' => 'John' , 'Age' => 25],    
    ['name' => 'Nick' , 'Age' => 28] 
 ]

我的要求是,如果随请求一起发送记录,则它必须同时包含姓名和年龄。同时,整个数组不是强制性的。

我可以接受

$users = [] 

不能接受

$users = [    
    ['name' => '' , 'Age' => 25],    
    ['name' => 'Nick' , 'Age' => null] 
 ]

我喜欢@Shafeel 的解决方案 - 这是另一种解决方法:

if(count($users >= 1){
  foreach($users as $user) {
    if(empty($user->name) || empty($user->age) {
      return false; //break the loop and return with error message
    }
  }
}

您请求中类似的东西应该可以工作:

public function rules()
{
    return [
        'users' => 'array', //add 'sometimes' if the array can be null other than empty
        'users.*.name' => 'required',
        'users.*.Age' => 'required',
    ]
}

如果任何用户缺少姓名或年龄属性,则此 return 为 false。