laravel更新并选择

时间:2016-10-13 06:40:32

标签: php mysql laravel

我有一种情况是根据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");
 }

2 个答案:

答案 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。

请回到这个问题:

Laravel, get last insert id using Eloquent

答案 1 :(得分:-1)

但无论如何它总是至少有2个查询(MySQL中的SELECT和UPDATE,不过你这样做)

如果您想要“更清洁”的方式,可以查看Laravel Eloquent