Laravel DatabaseTransactions不适用于DB Facade

时间:2019-03-28 10:08:55

标签: php laravel-5 eloquent transactions laravel-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());

输出为

enter image description here

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

  • 使用数据库外观不符合数据库事务特征;它不能使用“内存中”事务,因此可以在“实时”数据库中工作。
  • 模型可以访问内存。

我是正确的还是有办法解决这个问题?

0 个答案:

没有答案