检查查询没有结果laravel 5.5

时间:2018-02-02 09:20:59

标签: php laravel orm

我想找到一种方法来检查我的查询结果是否没有返回值。例: 如果在我的tableExample数据库中没有我传递的id,该方法应该返回一个异常或一个简单的回显,表明我不存在于表中

我的代码如下:

try{
     DB::table('tableExample')
        ->where('id', "2")
        ->update(['update' => "1"]);

        return $result= array("result" => "true" );
      }catch(QueryException $e){
        return $result= array("result" => "false" );
        echo " - ".$e;
      }
}

3 个答案:

答案 0 :(得分:1)

update方法返回整数值(affected rows)如果成功,请尝试这样

try{
    $update = DB::table('tableExample')
        ->where('id', "2")
        ->update(['update' => "1"]);
    if($update){
        $result = array("result" => true );
    }else{
        $result = array("result" => false,"message"=>"Not Found" );
    }
}catch(QueryException $e){
    $result = array("result" => false,"message"=>$e->getMessage() );
}
return $result;

答案 1 :(得分:1)

使用findOrFail()辅助方法。这样您就不需要将操作包装在try catch中,因为如果findOrFail没有找到该行,那么它将抛出异常。

    $resultData = DB::table('tableExample')->findOrFail(2);

    $update = $resultData->update(['update' => "1"]);

    if(!$update){
      return response(['results'=>false]);
    }

    return response(['results'=> true]); 

}

update()方法返回布尔值true表示更新成功,反之亦然。

答案 2 :(得分:0)