Laravel(Lumen) уникальное правило проверки данных массива при обновлении
Я пытаюсь добавить уникальное правило в массив данных и хочу игнорировать уникальное правило для данного идентификатора при обновлении той же записи.
При создании новой записи я использую такие правила, как
$rules = [
'provider.*.link' => 'required|url|unique:providers,link',
];
и мой массив данных выглядит
[provider] => [
[0] =>[
[link] => http://mysite.local/1
[1] =>[
[link] => http://mysite.local/1
]
который отлично работает Но при обновлении одних и тех же данных я не могу понять, как игнорировать уникальные правила для их идентификаторов.
Я знаю, как это сделать, когда нет такого массива, как
'link' => 'required|email|unique:providers,link,' . $id,
но не уверен, как использовать его, когда данные являются массивом.
Мой массив данных обновления выглядит так
[provider] =>
[
[0] =>
[
[id] => 3
[link] => http://mysite.local/1
]
[1] =>
[
[id] => 4
[link] => http://mysite.local/1
]
]
Я использую Lumen и использую ту же функцию для создания и обновления записей. Есть ли способ добиться этого?
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;