eloquent的事务
以前没有碰到这种需求,就没在意。在eloquent
的事务中,在commit
之前,对对象进行save
操作,再进行查询,查到的数据已经是更新之后的。代码如下
public function index(){
DB::beginTransaction();
$id = 2;
$user = User::find($id);
$user->name = 'name_after';
dump(User::find($id)->name); //① 此时name是name_before
$user->save();
dump(User::find($id)->name); //② 此时name已经是name_after
Db::commit();
dump(User::find($id)->name); //③ 我的理解是应该此时才会变更
}
我的理解是应该在Db::commit()
之后,数据才会变。
实际上如果去掉commit
操作,数据不会写库,但在位置②的时候,查出来的数据也已经是name_after
了。
PS:数据库是postgres,隔离等级是read committed
,没有问题。
我想要在位置②查出来的数据还是name_before
,应该怎么做?
谢谢~
推荐文章: