laravel - Laravel:在一个查询中更新多行
问题描述
如何使用 laravel eloquent 更新多行?
我想要类似的东西:
$guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at');
$guest->update(['sort_no' => DB::raw('sort_no - 1')]);
我努力了
$guest->update(['sort_no' => 10]);
我工作了!
所以我认为我的问题出在DB::raw
太感谢了!
解决方案
使用减量();
guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
对多个 ID 使用 whereIn:
guest = GuestJointDetail::whereIn('guest_joint_id', $guest_id_array)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
推荐阅读
- go - 冲突的匹配嵌入式接口方法是功能、错误还是其他?
- c++ - 如何删除已经输入的书籍,如何让书名、语言、名字在上面加空格不出错?
- java - 如何在另一个 HBase 过滤器之上应用一个 HBase 行过滤器?
- tensorflow - 如何在张量流中复制列?
- php - 如何计算“添加到购物车”会话 Ajax
- powershell - 如何使用 powershell 将数据转储导出到表中?
- python - 如何在 matplotlib 中自定义适合水平条形图?
- r - R gsub 数字和变量的空间
- python - 如何找到旋转图像边界框的新坐标以修改其 xml 文件以进行 Tensorflow 数据增强?
- javascript - Parse Cloud 代码使用 Parse 3.0.0 定义