【问题标题】:Laravel(Lumen) unique validation rule for an array data when updatingLaravel(Lumen)更新时数组数据的唯一验证规则
【发布时间】:2018-06-12 21:36:36
【问题描述】:

我正在尝试在数据数组上添加唯一规则,并希望在更新同一记录时忽略给定 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 并使用相同的功能来创建和更新记录。 有没有办法做到这一点?

【问题讨论】:

    标签: laravel validation lumen-5.4


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 2019-11-15
      • 2018-05-24
      • 1970-01-01
      • 2015-02-03
      相关资源
      最近更新 更多