gpt4 book ai didi

laravel - 使用来自项目的 wheres 验证数组项目

转载 作者:行者123 更新时间:2023-12-03 23:06:35 26 4
gpt4 key购买 nike

语境

我有两个订单模型,它们是:OrderOrderItem .

在 OrderController 我想验证项目数组。我查了 Laravel array validation并发现我可以使用这样的东西:

    $customer_id = Auth::guard('api')->user()->id;
$validate = validator($request->all(), [
'address_id' => 'required|numeric|exists:addresses,id,customer_id,' . $customer_id,
'items.*.product_id'=> 'required|numeric|exists:products,id',
]);

这适用于“静态验证”

目标

我想添加以下规则
'items.*.product_color_id'  => 'required|numeric|unique:order_items,product_color_id,NULL,id,product_size_id,' . $request->product_size_id . ',product_id,' . $request->product_id . '|exists:product_colors,id,product,' . $request->product_id,

问题是我该如何制作 $request->product_size_id项目中每次迭代的变化?

笔记

我想把它们做成两个 Controller OrderControllerOrderItemController它将以这种方式工作,但通过这种方式,客户端必须发送多个请求(一个用于创建订单,一个用于每个项目)

最佳答案

我找到了 here .我必须为它编写一个 for 循环,如下所示:

$validation = [];
for ($i = 1; $i <= count($request->get('recipients')); $i++) {
$validation[] = [
'to.'.$i.'.email' => 'required|email',
'to.'.$i.'.name' => 'required|string',
];
}

$this->validate($request, ['to' => 'required|array'] + $validation);
这样我就可以得到 $request[$i]->get('product_size_id')

关于laravel - 使用来自项目的 wheres 验证数组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62320706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com