当前位置: 首页 > 知识库问答 >
问题:

批量更新查询雄辩没有Foreach循环-Laravel 5.1

颛孙嘉石
2023-03-14

嗨,我的数据库结构如下:

表:分析

id | user_id(fk) | date | finalized(boolean)

现在我想批量更新数据。例如,我想选择用户_id=1的数据以及2016-03-01和2016-03-20之间的日期。然后我想将结果中得到的所有记录的列从0更新为1。

我所做的工作如下:

 Analytics::where('user_id', $request->get('user_id'))
->whereBetween('date', [$request->get('from_date'), $request->get('to_date')])
->update(array('finalized' => 1));

但这不起作用,也没有显示任何错误。请让我知道在雄辩的帮助下我能做什么。提前谢谢。

我也看到了StackoverFlow中的其他问题,但答案建议运行foreach循环,这是我不想要的。那么,有什么办法吗?那么,请建议我。再次感谢

共有1个答案

穆招
2023-03-14

您确定已在分析模型上设置了$filleble属性,并且该属性包括已完成?另外,您是否确认请求对象具有您期望的日期和用户ID?

或者,您可以不使用雄辩,直接访问数据库。

DB::table('analytics')
    ->where('user_id', $request->user_id)->
    ->whereBetween('date', [$request->from_date, $request->to_date])
    ->update(['finalized' => 1]);
 类似资料:
  • 数据结构如下: 转介及统计数字 现在,对于这个表,我想插入两个数组,第一个数组将成功插入,如下所示: 现在第二个数组是$userWriterReferralStatsArray,在插入这个数组时,我想检查是否重复了相同的日期和相同的注册用户id,然后它应该更新,而不是插入新行。我如何实现它,或者请建议我是否有其他好的方法来实现它,因为有大量的行。 提前感谢

  • 嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!

  • 我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?

  • 我有两个模型。模型有一个(关系)。 关于模型,我有以下关系:

  • Laravel Eloquent的save()方法实质上是执行查询生成器的工作吗? 查询生成器: 雄辩的: 如果这是真的,那么Eloquent的也是如此吗?我正在看Laravel的官方视频教程,我看到作者在控制器中使用了雄辩的和。这就是查询生成器和雄辩的区别吗?我们可以使用雄辩的内部控制器?

  • 问题内容: 插入新记录或更新(如果存在)的快捷方式是什么? 问题答案: 这是“ lu cip”正在谈论的完整示例: 以下是Laravel最新版本上的文档更新链接 此处的文档:更新的链接