如果在循环中添加了几个“where”和“update”,如何生成对db的查询?

时间:2017-11-24 19:28:54

标签: laravel laravel-5 eloquent laravel-eloquent

我有一个带有四个传入数组的方法。

前两个数组$whereColumns[]$updateColumns[]包含列名。

第三列$whereFilters[]包含where方法的过滤器。

最后一个$updateFilters[]包含更新值。

如何只使用多个where方法和多个更新列生成一个搜索查询?现在我只知道如何在循环中使用多个where方法创建查询。

for($i=0; $<count($whereColumns); $i++){
    $query->where($whereColumns[$i], '=', $whereFilters[$i]);
}
$result = $query->get();

但是如何使用update生成这样的查询(但这不起作用):

for($i=0; $i<count($updateColumns); $i++){
    $query->update($updateColumns[$i] => $updateFilters[$i]); 
} 
$result = $query->get();

这两个循环都应该生成一个搜索查询以更新表数据。

1 个答案:

答案 0 :(得分:0)

您可以遍历$updateColumns并创建一个包含所有列和值的数组,如下所示: $updateArray = [$column[0] => $value[0], $column[1] => $value[1]];

然后你可以将整个数组放入查询

$query->update($updateArray);