DBから取得したEloquentのCollectionをCSVファイルにしたい!
一応コードとしては掛けたのですが、もっといいCollectionの機能がありそうなので助言ありましたらお願いします…。
やり方としては各Eloquentをarrayにしてkeyをarray_valuesで配列にして、implodeで結合してます。
最後にjoinで改行でくっつけています。
注意点としては最後の ->join("\n")
ですが、->join('\n')
とシングルクォーテーションだと改行コードとして認識されないので必ずダブルクォーテーションにする必要があります。
$collection_string = $collection->map(function ($item, $key) {
return implode(',' ,array_values($item->toArray()));
})->join("\n");
Storage::disk('example-backet')->put('hoge.csv', $collection_string);