Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让Lumen使用DB::transaction?_Php_Laravel_Lumen - Fatal编程技术网

Php 如何让Lumen使用DB::transaction?

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

我正在使用Lumen和SQLite DB。我已经尝试了所有我能想到的在Lumen中使用
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?控制器?