如何让Lumen使用DB :: transaction?

时间:2015-06-16 21:54:33

标签: php laravel lumen

我使用Lumen和SQLite DB。我已经尝试过所有我能想到的在Lumen中使用DB::transaction的东西,但无济于事。我一直都会遇到这样的错误:

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

我已经尝试将use DB;放在课堂顶部。我试过use立面。似乎没什么用。

尝试使用它的简单示例:

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

1 个答案:

答案 0 :(得分:3)

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

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

如果有很多这些,你也可以在变量中缓存调用app('db')的结果以供重用。它的行为就像DB上的静态调用一样。