Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 setFetchMode被忽略_Php_Eloquent - Fatal编程技术网

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,对不起!