php - 在 laravel 中使用多个 where 更新查询中的数据
问题描述
我有一个像这样的二维数组输入:
[ 6 => [ [2=>3, 5=>7] ],
8 => [ [1=>4, 9=>3] ],
.....
]
6,8 是 locationID,2,5,1,9 是 variantID,3,4,7,3 是它们各自的数量。我必须遍历二维数组并获取数据。该表具有字段 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 子句。
IE
$query->where([
['location_id', $location],
['variant_id', $variant]
]);
推荐阅读
- python - 为什么我的 beautifulsoup 解析只是一个元标记?
- c - 逗号运算符会使代码变慢吗?
- sql - 检查 GroovyRowResult 字段是否为空字符串
- php - MySQL NULL 值未更新
- angular - Angular 5在页面加载时显示与模型匹配的选择列表选项
- php - 抓取类名中带有空格的标签php
- python - 在一个程序中控制 RFID RC522 和伺服电机
- python - 如何在 Julia 中使用 Python 函数?
- jquery - Plotly 绘图无法在模态中自动缩放
- yii2 - Yii2 社交登录出错:设置未知属性:yii\web\Application::authClientCollection