0
laravel中的交易是否只與數據庫門面一起工作?我想知道它是否適用於雄辯的模型;即下面的代碼將具有預期的效果laravel中的交易5.1
DB::beginTransaction();
try {
eloquentModel::query();
} catch (\Exception $e) {
DB::rollback();
}
laravel中的交易是否只與數據庫門面一起工作?我想知道它是否適用於雄辯的模型;即下面的代碼將具有預期的效果laravel中的交易5.1
DB::beginTransaction();
try {
eloquentModel::query();
} catch (\Exception $e) {
DB::rollback();
}
是的,與數據庫門面和你的雄辯模型一起工作。
(如你的例子,所使用的默認連接,這樣你就ok了。)
不要忘記DB::commit();
時,它的確定承諾!
此外,您的數據庫表引擎必須支持事務,例如InnoDB。
建議,您也可以使用更簡單,交易方法
DB::transaction(function() {
eloquentModel::query();
});
此外,不要害怕測試它,只是增加你的信心水平。 說,provoque錯誤,看它的工作
DB::beginTransaction();
try {
eloquentModel::query();
eloquentModel::create(['field_not_exists' => 'will throw exception!']);
} catch (\Exception $e) {
// DB::rollback(); // test with comment, and without comment, check DB for results ;)
}
DB::commit();
快樂的編碼!
有幫助。謝謝! – SJB