更新

时间:2018-01-03 08:13:12

标签: laravel validation lumen-5.4

我正在尝试在数据数组上添加一个唯一规则,并希望在更新同一记录时忽略给定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
                ]

        ]

我正在使用流明并使用相同的功能来创建和更新记录。 有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

$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;