【发布时间】:2023-04-04 11:36:01
【问题描述】:
我有一个 items 数组,在 items 表单键中作为 JSON 发送到控制器。
[{
"sku": "w-hook-as1",
"qty": 2,
"cost_ex_tax": "34.22",
"tax_rate": "0.2"
}]
这里转换为数组:
$request->merge(['items' => json_decode($request->items, true)]);
并根据规则进行验证:
'items.*.sku' =>[
'required',
Rule::exists('products')->where(function ($query) {
$query->where('company_id', Auth::user()->company_id);
})
],
如果验证所针对的数组键存在,则存在规则确实有效,假设该键存在。如果我只是发送:
[{
"qty": 2,
"cost_ex_tax": "34.22",
"tax_rate": "0.2"
}]
然后验证通过。
有没有一种方法可以检查密钥是否存在以及验证其内容?我原以为所需的检查会执行此操作,但它似乎不起作用。
How to validate array in Laravel? - 这个答案建议验证它是一个包含 x 个元素的数组,但仍然没有检查我正在寻找的确切键是否存在。
【问题讨论】:
标签: php laravel validation laravel-validation