php - Laravel DatabaseTransactions 不适用于 DB Facade
问题描述
当我使用DatabaseTransactions
. 在我的产品表中,我有所有 stock_count = -99 的产品。
这是我的代码
TestCase.php(所有测试都扩展了这个类)
use DatabaseTransactions;
protected $connectionsToTransact = ["mysql"];
public function setUp()
{
parent::setUp();
MimProduct::query()->update(['stock_count'=>100]);
...
}
然后在我的一项测试中,我添加了相同的查询,一个使用 DB Facade,另一个使用实际模型。
dd(DB::table("mim.products")->first(),MimProduct::all()->first());
输出是
到目前为止,我的结论是:
- 使用 DB 门面不适用于 DB Transaction trait;它不能使用“内存中”事务,因此它将在“实时”数据库中工作。
- 而模型可以访问内存。
我是正确的还是有办法克服这个问题?
解决方案
推荐阅读
- google-cloud-platform - Google Cloud Datastore - 删除模式
- hibernate - 如何使用条件创建查询
- python - 模型中的 Django 模型字段默认值
- ssl - 为什么我的域和 ssl 在每个地方都无法正常工作?
- python - Is this TF training curve overfitting or underfitting?
- php - 404 Not Found on Laravel when requesting api route-(configuring nginx) in combination with angular
- kotlin - 在 dispose() 之后不能使用同一个 DisposableObserver 和 subscribeWith 两次
- javascript - 将 Firebase 子项命名为序列数组
- ios - 在选择时更改默认行背景颜色
- vue.js - Vue JS控制台日志没有定义方法