请问 DB facade 到底能不能实现 Eloquent ORM 的数据库事物操作?
我是用 Eloquent ORM 操作的数据库,现在遇到了需要向2张表插入信息的原子操作(一张是文章列表,另一张是文章内容表)。
显然,这两个插入应该是原子操作,我尝试着用 DB facade 来实现,如下:
DB::transaction(function () {
articleModel::create():
articleContentModel::create():
});
第二种方法:
DB::beginTransaction();
try{
articleModel::create():
articleContentModel::create():
DB::commit();
}catch(\Exception $e){
DB::rollBack();
}
这些代码虽然都能运行,但是都没有实现原子操作。
而且我还试了把 DB 换成我创建的 model,发现提示对象没有此方法。
但是文档里又清楚的说明了:
使用 DB facade 的事务方法也适用于 查询语句构造器 and Eloquent ORM。
引用位置点此
那么, DB facade 到底能不能实现 Eloquent ORM 的数据库事物操作呢?
还有,文档说的又是什么意思?
推荐文章: