Laravel Eloquent ORM Transactions
Eloquent ORM非常好,尽管我想知道是否有一种简单的方法可以使用innoDB以与PDO相同的方式设置MySQL事务,或者我是否必须扩展ORM才能实现这一目标?
Eloquent ORM非常好,尽管我想知道是否有一种简单的方法可以使用innoDB以与PDO相同的方式设置MySQL事务,或者我是否必须扩展ORM才能实现这一目标?
您可以执行以下操作:
DB::transaction(function() {
//
});
闭包内的所有内容都在事务中执行。如果发生异常,它将自动回滚。
如果您不喜欢匿名函数:
try {
DB::connection()->pdo->beginTransaction();
// database queries here
DB::connection()->pdo->commit();
} catch (\PDOException $e) {
// Woopsy
DB::connection()->pdo->rollBack();
}
更新:对于 laravel 4,该对象不再是公共的,因此:pdo
try {
DB::beginTransaction();
// database queries here
DB::commit();
} catch (\PDOException $e) {
// Woopsy
DB::rollBack();
}