使用Laravel的Eloquent,我试图根据'product_id'为某些行添加增量计数器。
我以为我可以这样做:
$foos = GanttTask::where('product_id',1)->orderBy('date', 'ASC');
$counter = 1;
foreach($foos as $foo){
$foo->custom_counter = $counter;
$counter +=1;
}
return $foos->get();
但这对我的数据没有影响,custom_counter列不会改变(但我没有错误)。
我尝试在循环中添加$foo->save()
但没有效果。
答案 0 :(得分:1)
首先获取所有记录,然后使用以下保存方法修改单个记录:
Map.values(map)
祝你好运!!!
答案 1 :(得分:0)
要实际更新数据库,我认为您需要单独保留每个数据对象foo
,而不是整个集合foos
。
$foos = GanttTask::where('product_id',1)->orderBy('date', 'ASC');
$counter = 1;
foreach($foos as $foo){
$foo->custom_counter = $counter;
$counter +=1;
$foo->save(); // Persisting data here
}