Php laravel save()方法是否引发异常?

Php laravel save()方法是否引发异常?,php,database,laravel,exception-handling,transactions,Php,Database,Laravel,Exception Handling,Transactions,我有个小问题。这是我的代码: DB::beginTransaction(); try{ $created = new TransportTypeColumn(); $created->name = $translated_ids[0]; if(!$created->save()) throw new \Exception("failed saving transport type column");

我有个小问题。这是我的代码:

DB::beginTransaction();
    try{
        $created = new TransportTypeColumn();
        $created->name = $translated_ids[0];
        if(!$created->save())
            throw new \Exception("failed saving transport type column");
        DB::commit();
        return response()->json(['success'=>'Property has been created successfully', 'data'=>$created],200);

    }catch(\Exception $e){
        DB::rollback();
        return response()->json(['error'=>'Something went wrong, please try later.'], 500);
    }
我需要这段代码吗

if(!$created->save())
            throw new \Exception("failed saving transport type column");

或者,如果save()函数不成功,它是否会引发异常本身?

save
返回一个布尔值,您需要检查保存是否成功,但除非出现mysql错误,否则您不会得到任何异常。

我知道这个问题已经有了答案,但对于偶然发现此问题并希望抛出异常的人,可以使用方法
saveOrFail()
而不是
save()

DB::beginTransaction();
试一试{
$created=新的TransportTypeColumn();
$created->name=$translated_id[0];
$created->saveOrFail();
DB::commit();
return response()->json(['success'=>'属性已成功创建,'data'=>$created],200);
}捕获(\异常$e){
DB::rollback();
返回响应()->json(
['error'=>“出现问题,请稍后再试。”,
$e->getCode()
);
}

至少从Laravel 5.5开始,这种方法就存在了,您可以在

您可以设置的可能副本
$saved=$created->save()中找到关于它的更多信息$保存===真。如果save()不起作用,这意味着有mysql错误?所以我总是有例外。。是吗?我的意思是save()是否可能返回false,但没有mysql或任何其他异常?我现在想不出一个异常,但我发现了这一点,检查记录是否保存总是好的。