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