Php Laravel数据库事务不能与DB Facade一起使用

Php Laravel数据库事务不能与DB Facade一起使用,php,laravel-5,eloquent,transactions,laravel-facade,Php,Laravel 5,Eloquent,Transactions,Laravel Facade,使用数据库事务运行测试时出现问题。在我的Products表中,我有所有的产品,其中stock_count=-99 这是我的密码 php(所有测试都扩展了这个类) 使用数据库事务; 受保护的$connectionsToTransact=[“mysql”]; 公共功能设置() { 父::设置(); MimProduct::query()->update(['stock_count'=>100]); ... } 然后在我的一个测试中,我添加了相同的查询,一个使用DB Facade,另一个使用实际模型

使用
数据库事务运行测试时出现问题。在我的Products表中,我有所有的产品,其中stock_count=-99

这是我的密码

php(所有测试都扩展了这个类)

使用数据库事务;
受保护的$connectionsToTransact=[“mysql”];
公共功能设置()
{
父::设置();
MimProduct::query()->update(['stock_count'=>100]);
...
}
然后在我的一个测试中,我添加了相同的查询,一个使用DB Facade,另一个使用实际模型

dd(DB::table(“mim.products”)->first(),MimProduct::all()->first());
输出是

到目前为止,我的结论是:

  • 使用DB facade不适用于DB事务特性;它不能使用“内存中”事务,因此它将关闭“活动”数据库
  • 而模型可以访问内存

我是对的还是有办法克服这个问题?

测试的默认连接是什么?默认连接是MySQL您的型号使用
mim
连接,
$connectionsToTransact
中缺少该连接
DB::table(“mim.products”)
使用默认的
mysql
连接。我也尝试将这两个连接都放在$connectionsToTransact中,但都不起作用,最后我放弃了“mim”连接,只使用“mysql”,一切都正常,这不是一个合适的解决方案,但总比什么都没有好。谢谢你]