我想设置数据库查询结果是一个数据而不是对象的形式。官方文档说5.4开始需要监听新的 IlluminateDatabaseEventsStatementPrepared 事件
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(\PDO::FETCH_ASSOC);
});
这段代码加载哪里呢?加在EventServiceProvider.php里吗?为什么我这么加没有效果
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\Event' => [
'App\Listeners\EventListener',
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
//
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(\PDO::FETCH_ASSOC);
});
}
}
找到原因了:需要use Illuminate\Database\Events\StatementPrepared