使用 laravel 中的多个 where 从查询更新数据
Update data from a query using multiple where in laravel
我有一个这样的二维数组输入:
[ 6 => [ [2=>3, 5=>7] ],
8 => [ [1=>4, 9=>3] ],
.....
]
6,8是locationID,2,5,1,9是variantID,3,4,7,3是它们各自的数量。我必须遍历二维数组并获取数据。 table 具有字段 location_id、variant_id 和数量。
$variantsData = self::where(function ($query) use ($inventoryData) {
foreach ($inventoryData as $location => $variantData) {
foreach ($variantData as $variant => $quantity) {
$query->orWhere(function ($query) use ($location, $variant) {
$query->where('location_id', $location)
->where('variant_id', $variant);
});
}
}
})->get();
$inventoryData 是二维数组。我获得了此代码中所需的数据,但现在我需要通过将存储的数量与数组中的这个相加来更新数量。
如果我没理解错的话,您想执行 location_id = $location
和 variant_id = $variant
正确的查询?如果是这样,您可以在一个 where 子句中传递一个嵌套数组,而不是使用多个 where 子句。
即
$query->where([
['location_id', $location],
['variant_id', $variant]
]);
我有一个这样的二维数组输入:
[ 6 => [ [2=>3, 5=>7] ],
8 => [ [1=>4, 9=>3] ],
.....
]
6,8是locationID,2,5,1,9是variantID,3,4,7,3是它们各自的数量。我必须遍历二维数组并获取数据。 table 具有字段 location_id、variant_id 和数量。
$variantsData = self::where(function ($query) use ($inventoryData) {
foreach ($inventoryData as $location => $variantData) {
foreach ($variantData as $variant => $quantity) {
$query->orWhere(function ($query) use ($location, $variant) {
$query->where('location_id', $location)
->where('variant_id', $variant);
});
}
}
})->get();
$inventoryData 是二维数组。我获得了此代码中所需的数据,但现在我需要通过将存储的数量与数组中的这个相加来更新数量。
如果我没理解错的话,您想执行 location_id = $location
和 variant_id = $variant
正确的查询?如果是这样,您可以在一个 where 子句中传递一个嵌套数组,而不是使用多个 where 子句。
即
$query->where([
['location_id', $location],
['variant_id', $variant]
]);