在 Laravel 8 中通过循环获取数组数据

Posted

技术标签:

【中文标题】在 Laravel 8 中通过循环获取数组数据【英文标题】:Getting Array Data throught Loop on Laravel 8 【发布时间】:2021-10-31 20:34:26 【问题描述】:

我正在使用一种将数组数据发送到控制器的表单。它还接收到这样的数组数据

$product_unit = $inputs['orderProducts'];

但问题是当我通过 foreach 循环传递这些数据以匹配其他产品时,它只显示一个数组。

foreach ($product_unit as $unit)
        $product = Product::all()
            ->where('id', '=', $unit['product_id'])
            ->where('unit', '>=', $unit['quantity'])
            ->first();
    

在这里,我想将接收到的数组数据与插入的现有产品相匹配。如果它匹配现有数据,它将增加。但在这里它只能传递单个数组。这就是为什么它只是增加一行值。特别是最后匹配的值会增加。那么如何通过laravel中的where函数循环该数组数据。

【问题讨论】:

每次迭代都会覆盖$product 【参考方案1】:

你必须像下面这样使用。

$product= array();

foreach ($product_unit as $unit)
    $product[] = Product::all()
        ->where('id', '=', $unit['product_id'])
        ->where('unit', '>=', $unit['quantity'])
        ->first();


dd($product)

【讨论】:

为什么,你不向 OP 描述出了什么问题 @Daan,已经描述过了。但我也必须描述。这是我的错【参考方案2】:

$product 变量应该是一个数组;

$product[]

【讨论】:

以上是关于在 Laravel 8 中通过循环获取数组数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 LARAVEL_7 中通过迁移发送多个复选框

在 laravel vue 中通过 axios post 发送对象数组

如何在 Sanctum Laravel 中通过 Token 获取用户

在Laravel中通过AngularJs上传文件时获取值为null

如何在控制器laravel 8中通过ajax传递路由链接和图像存储链接

在Laravel 5中通过ID和所有外国人递归获取记录