【问题标题】:Bulk Update Query Eloquent without Foreach Loop - Laravel 5.1没有 Foreach 循环的批量更新查询 Eloquent - Laravel 5.1
【发布时间】:2016-06-30 11:19:48
【问题描述】:

您好,我的数据库结构如下:

表格:分析

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

现在我想批量更新数据。例如,我想选择 user_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));

但这不起作用,也没有显示任何错误。请让我知道如何在 eloquent 的帮助下做。提前致谢。

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

【问题讨论】:

标签: mysql laravel eloquent


【解决方案1】:

您确定在Analytics 模型上设置了$fillable 属性,并且它包括finalized?另外,您是否确认请求对象具有您期望的日期和用户 ID?

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

DB::table('analytics')
    ->where('user_id', $request->user_id)->
    ->whereBetween('date', [$request->from_date, $request->to_date])
    ->update(['finalized' => 1]);

【讨论】:

  • 我正在检查。谢谢推荐
猜你喜欢
  • 1970-01-01
  • 2016-07-18
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多