Php setFetchMode被忽略
我正试图用Php setFetchMode被忽略,php,eloquent,Php,Eloquent,我正试图用setFetchMode初始化eloquent为PDO::FETCH_ASSOC 我已经试过了所有可能的方法,但都没用 到目前为止,我尝试的是: 使用addConnection $capsule = new Illuminate\Database\Capsule\Manager; $capsule->addConnection([ ... 'fetch' => PDO::FETCH_ASSOC ]); 使用setFetchMode $capsule-&g
setFetchMode
初始化eloquent为PDO::FETCH_ASSOC
我已经试过了所有可能的方法,但都没用
到目前为止,我尝试的是:
使用addConnection
$capsule = new Illuminate\Database\Capsule\Manager;
$capsule->addConnection([
...
'fetch' => PDO::FETCH_ASSOC
]);
使用setFetchMode
$capsule->setFetchMode(PDO::FETCH_ASSOC);
使用事件:
$t = new Illuminate\Events\Dispatcher;
$t->listen(Illuminate\Database\Events\StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(PDO::FETCH_ASSOC);
});
但这些都不管用。你知道如何使PDO::FETCH_ASSOC
工作吗
PS:我知道前两个选项不适用于最新版本的eloquent,但我不得不尝试一下。我愿意接受关于如何使第三种选择有效的建议。通常情况下,第三个类的开头应该是这样的Event::listen
,但我不知道Events
类来自哪里。我还需要某种类型的事件侦听器吗
PPS:我没有使用Laravel,我使用的是Illumb's Elount with PHP using composer。安装
Illumb/events
软件包并使用以下功能:
use Illuminate\Container\Container;
use Illuminate\Database\Capsule\Manager;
use Illuminate\Database\Events\StatementPrepared;
use Illuminate\Events\Dispatcher;
$capsule = new Manager;
$capsule->addConnection([...]);
$dispatcher = new Dispatcher(new Container);
$capsule->setEventDispatcher($dispatcher);
$dispatcher->listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(PDO::FETCH_ASSOC);
});
安装
light/events
软件包并使用以下方法:
use Illuminate\Container\Container;
use Illuminate\Database\Capsule\Manager;
use Illuminate\Database\Events\StatementPrepared;
use Illuminate\Events\Dispatcher;
$capsule = new Manager;
$capsule->addConnection([...]);
$dispatcher = new Dispatcher(new Container);
$capsule->setEventDispatcher($dispatcher);
$dispatcher->listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(PDO::FETCH_ASSOC);
});
我会试试的,我会给你回复的,谢谢!这个答案真的和这个不同吗?我目前使用的是
DB
facade,所以我不知道我需要添加什么来代替addConnection
。@rob74中的DB
。@rob74另一个答案是针对Laravel用户的,这是针对数据库包的独立用户的。我完全没有注意到这个问题只涉及到雄辩,而不是整个Laravel,对不起!我会试试的,我会给你回复的,谢谢!这个答案真的和这个不同吗?我目前使用的是DB
facade,所以我不知道我需要添加什么来代替addConnection
。@rob74中的DB
。@rob74另一个答案是针对Laravel用户的,这是针对数据库包的独立用户的。我完全没有注意到这个问题只涉及到雄辩,而不是整个Laravel,对不起!