我想找到一种方法来检查我的查询结果是否没有返回值。例: 如果在我的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;
}
}
答案 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)