【问题标题】:Get current index in a array-validation在数组验证中获取当前索引
【发布时间】:2021-11-12 09:33:58
【问题描述】:

我得到一个包含对象数组的输入。现在我想验证它,但是验证的一部分取决于对象的另一项,所以我需要它的索引:

[
    'items.myarray.*.owner_id' => 'numeric|exists:App\Models\Owner',
    'items.myarray.*.key'      => ['nullable', 'string', 'min:20', 'max:20', 'exists:App\Models\Invitation,key',
                           new KeyIsValid(Owner::findOrFail(request()->input('items.*.owner_id')))],
];

当然request()->input('items.myarray.*.owner_id') 不起作用 - 但我正在寻找一种将当前对象的owner_id 传递给此验证的方法。

【问题讨论】:

    标签: laravel laravel-8 laravel-validation


    【解决方案1】:

    你不需要*,如果你的请求包含$items['owner_id'],你可以简单地做items.owner_id => 'validation-rules-here'

    【讨论】:

    • 数组的每个条目都可以有不同的owner_ids,所以很遗憾这不是我想要的。但我明白你的意思,在我最初的问题中,这并不清楚。
    【解决方案2】:

    这将返回一个数组值尝试使用

    $request()->input('items.myarray.*.key')[0]
    

    它将返回一个字符串值“items.myarray.*.key” 它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2020-10-02
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 2022-08-11
      • 2018-08-13
      • 1970-01-01
      相关资源
      最近更新 更多