是否验证数组中的复合密钥



为了验证我的应用程序中的电话号码,我需要将其与国家/地区id组合,以确保组合是唯一的,而不是电话号码本身。这在过去不是一个问题,并且已经在验证类中使用以下方法解决

'phone' => ['required', 'string',
Rule::unique('users')
->where('country_id', $this->country_id)
->where('phone', $this->phone)
],

然而,我现在接受了一批用户,下面的规则似乎不起作用

'contacts.*.phone' => ['required', 'string',
Rule::unique('users')
->where('country_id', $this->country_id)
->where('phone', $this->phone)
],

没有在堆栈溢出或文件中找到任何关于这个问题的

您可以使用Rule::forEach实现这一点,在您的用例中,它可能如下所示:

'contacts.*.phone' => [
'required',
'string',
Rule::forEach(function ($value, $attribute) {
return [
Rule::unique('users')
->where('country_id', $value)
->where('phone', $value),
];
}),
],

相关内容

  • 没有找到相关文章