如何让 Lumen 使用 DB::transaction?

How do I get Lumen to use DB::transaction?

我将 Lumen 与 SQLite 数据库一起使用。我已经尝试了所有我能想到的在 Lumen 中使用 DB::transaction 的方法,但无济于事。我总是收到这样的错误:

ReflectionException: /vendor/illuminate/container/Container.php line 779

我试过将 use DB; 放在 class 的顶部。我试过 use 外观。似乎没有任何效果。

尝试使用它的简单示例:

DB::transaction(function () use ($attributes, $service) {
   $this->person = $this->person->create([]);
   // do some other stuff
});

我自己在 Lumen 中使用 DB::transaction 进行交易时遇到了困难。我最终使用的解决方法是使用全局函数 app() 而不是外观来解析数据库,然后像这样使用事务:

app('db')->transaction(function() {
    // DB work
});

如果有很多这些,您还可以将调用 app('db') 的结果缓存在一个变量中以供重用。它的行为就像 DB.

上的静态调用一样