我有一种情况是根据id更新行并返回完整的行。我可以在两个查询中执行此操作,但我只想在一个查询中执行此操作。我写了这个......
$result= DB::table($this->table)
->whereRaw($where['rawQuery'], $where['bindParams'] ? $where['bindParams'] : array())
->increment($updateField);
if($result){
return DB::table($updateTable)
->select('id')
->where('campaign_id',$where['bindParams'])
->where('date',date("Y-m-d"))
->get();
}else{
throw Exception("Error in fetching data");
}
答案 0 :(得分:1)
我从您在问题中评论的内容中复制了此内容:
不,如果可能,我想要返回更新行或完整行的ID
如果您想要返回刚才更新的“行”的ID,那么您正在谈论它。您可以使用Eloquent来完成此任务。
您可以使用以下路线:
Route::put('demo/{id}', Controller@update);
然后在控制器的更新功能中,您可以获取ID。 使用$ model = Model :: find(id);
查找模型使用您获得的数据做事。 像$ model-> name = Input :: get('name');
然后使用$ model-> save();
保存后,您可以执行$ model-> id;
现在,您将获得有关刚更新的行的ID。
请回到这个问题:
答案 1 :(得分:-1)
但无论如何它总是至少有2个查询(MySQL中的SELECT和UPDATE,不过你这样做)
如果您想要“更清洁”的方式,可以查看Laravel Eloquent。