久しぶりにlaravelを利用しようとしたら、DBの結果を配列で取得できなくなっていたのでメモ。
5.4では基本的にオブジェクトでしか返さないように変更になったようです。
それでも使いたい方はイベントでフックさせてください。
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(PDO::FETCH_ASSOC);
});
laravelのクエリビルダーやEloquentをスタンドアローンで使用したい場合は、下記のとおりにしましょう。
$dispatcher = new Illuminate\Events\Dispatcher;
$dispatcher->listen(Illuminate\Database\Events\StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(PDO::FETCH_ASSOC);
});
参考:
issue
https://github.com/laravel/framework/issues/17557
アップグレードガイド
https://laravel.com/docs/5.4/upgrade#upgrade-5.4.0