2

我正在尝试在数据数组上添加唯一规则,并希望在更新同一记录时忽略给定 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|url|unique:providers,link,' . $id,

但不确定当数据是数组时如何使用它。

我的更新数据数组看起来像

 [provider] => 
        [
            [0] =>
                [
                    [id] => 3
                    [link] => http://mysite.local/1
                ]

            [1] =>
                [
                    [id] => 4
                    [link] => http://mysite.local/1
                ]

        ]

我正在使用 Lumen 并使用相同的功能来创建和更新记录。有没有办法做到这一点?

4

1 回答 1

4

你可以这样做:

$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;
于 2018-01-03T08:20:36.260 回答