LaravelでCSVの出力処理を構築したのですが、ヘッダー行をつけるために、エクスポートするデータベースのカラム構造を取得したいです。
CSVの出力処理は以下です。
php
1 public function export(){ //GETメソッド 2 $culumns = [ 3 'id','name','email','created_at','updated_at','deleted_at' 4 ]; 5 $users = AdminUser::get($culumns); 6 $stream = fopen('php://temp','w'); //メモリ上に仮想的にファイルを作成 7 8 // TODO CSVヘッダー行を追加する 9 fputcsv($stream, $culumns); 10 foreach ($users as $user) { // Modleクラスのコレクション、コレクションクラスは便利 11 fputcsv($stream, $user->toArray()); //$userがモデル 12 } 13 14 rewind($stream); // ポインタを頭に戻す、書き込み完了時には最後にポインタが最後にいるので 15 16 $csv = stream_get_contents($stream); // 文字列に変換 17 18 $headers = [ 19 'Content-Type' => 'text/csv', // HTTPのレスポンスのタイプを指定する(MIMEタイプ参照) 20 'Content-Disposition' => 'attachment; filename="users.csv"' 21 ]; 22 return response($csv,200,$headers); 23 }
ここで、$culumns変数へカラム構造を配列で定義していますが、AdminUserモデルより自動で指定テーブルの構造を取得したいです。
また、可能であれば構造を取得する際、カラムの除外指定もしたいです。
(このカラムは取得しないといった除外設定。)
何か指定方法はありますか?
パッケージなども有りましたら是非紹介欲しいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/05/13 09:10