在Laravel请求中验证数组密钥



我有一个Laravel请求,需要验证数组中的密钥。密钥是productId,我正在检查产品是否属于用户。

以下是POST请求的产品示例:

[
8 => [
'quantity' => 10,
'discount' => 10
],
9 => [
'quantity' => 10,
'discount' => 10
]
]

下面是请求规则。可以检查一下钥匙吗?

public function rules()
{
return [
'product.*' => 'required|exists:recipes,id,user_id,' . $this->user()->id,
'product.*.quantity' => 'required|numeric|min:0',
'product.*.discount' => 'required|numeric|min:0'
];
}

我做了一个临时解决方案。。。我应要求保留了身份验证。

'products.*.id' => 'required|exists:recipes,id,user_id,' . $this->user()->id,
'products.*.quantity' => 'required|numeric|min:0',
'products.*.discount' => 'required|numeric|min:0',

但在控制器中,数据会被修改以适应sync((方法,在sync方法中,id会从将被修改并设置为键的对象中删除。

$products = [];
for ($i = 0; $i < count($data['products']); $i++) {
$recipes[$data['products'][$i]['id']] = $data['products'][$i];
unset($products[$data['products'][$i]['id']]['id']);
}
$budget->products()->sync($products);
$budget->products = $data['products'];

我没有提到这是许多多态关系。

最新更新