我试图在数据数组上添加一个唯一的规则,并希望在更新同一记录时忽略给定id的唯一规则。
在创建新记录时,我使用的是规则
$rules = [
'provider.*.link' => 'required|url|unique:providers,link',
];
我的数据数组看起来像
[provider] => [
[0] =>[
[link] => http://mysite.local/1
[1] =>[
[link] => http://mysite.local/1
]
哪个工作正常。但是,当更新相同的数据时,我无法弄清楚如何忽略对其各自ID的唯一规则。
当没有像这样的数组时,我知道该怎么做
'link' => 'required|email|unique:providers,link,' . $id,
但是当数据是数组时不确定如何使用它。
我的更新数据数组看起来像
[provider] =>
[
[0] =>
[
[id] => 3
[link] => http://mysite.local/1
]
[1] =>
[
[id] => 4
[link] => http://mysite.local/1
]
]
我正在使用流明并使用相同的功能来创建和更新记录。有没有办法实现这个目标?
你可以这样做:
$rules = [
....
];
$providers = request('provider');
for ($i = 0; $i < count($providers); $i++) {
$rules['provider.' . $i . '.link'] = 'required|url|unique:providers,link,' . $providers[$i]['id'];
}
return $rules;