Php 如何让Lumen使用DB::transaction?
我正在使用Lumen和SQLite DB。我已经尝试了所有我能想到的在Lumen中使用Php 如何让Lumen使用DB::transaction?,php,laravel,lumen,Php,Laravel,Lumen,我正在使用Lumen和SQLite DB。我已经尝试了所有我能想到的在Lumen中使用DB::transaction,但都没有用。我经常会遇到这样的错误: ReflectionException:/vendor/illumb/container/container.php第779行 我试过使用DB位于类的顶部。我试过使用装饰立面。似乎什么都不管用 尝试使用它的简单示例: DB::transaction(function () use ($attributes, $service) { $t
DB::transaction
,但都没有用。我经常会遇到这样的错误:
ReflectionException:/vendor/illumb/container/container.php第779行
我试过使用DB代码>位于类的顶部。我试过使用装饰立面。似乎什么都不管用
尝试使用它的简单示例:
DB::transaction(function () use ($attributes, $service) {
$this->person = $this->person->create([]);
// do some other stuff
});
我自己也在Lumen中使用DB::transaction
来使用事务。我最后使用的一种解决方法是使用全局函数app()
而不是facade来解析数据库,然后在此基础上使用事务,如下所示:
app('db')->transaction(function() {
// DB work
});
如果有很多这样的函数,您还可以将调用app('db')
的结果缓存在一个变量中以供重用。它的行为就像对DB
的静态调用一样。您是否尝试运行composer dump autoload
?是的。每次更改后都尝试了composer dump autoload
。您是否已取消对此行的注释。我的工作方式很有魅力:\DB::transaction(函数($connection){dd($connection);})代码>是的,我已经取消了那句话和那句雄辩的话的注释。也许这与我正在使用SQLite数据库这一事实有更多的关系?在什么环境下您会使用facade?控制器?