skillup

技術ブログ

PHP

cakePHP CSVのインポートとエクスポート

投稿日:2015年11月18日 更新日:

本日もcakeネタです。

CSVインポート&エクスポート

CSVのインポートとエクスポートについて。

かなりいろいろなプラグインがあるようですが、一番楽なのはbehaviorを使う手法のようです。

app\Model\Behavior直下に下記ファイルを作成します。

CsvExportBehavior.php

CsvImportBehavior.php

ソースはそれぞれ下記にあります。

参考リンク

CakePHPでテーブルの情報をCSVに吐いたり読んだりしてみる

ソース

https://github.com/pronique/CakePHP-ProUtils-Plugin/blob/master/Model/Behavior/CsvExportBehavior.php

https://github.com/CakeDC/utils/blob/master/Model/Behavior/CsvImportBehavior.php

下記のようなことに注意する必要があります。

エクスポート

  • ダウンロードはテーブルの全データを自動的にダウンロードしてしまう(find(“all”)の記述あり)
  • 検索を入れたい場合はCsvExportBehavior.phpのカスタマイズが必要

インポート

  • csvのフィールド名とデータベースのフィールド名が同じだとそのままインサートされる。。
  • 逆に言うとそうでないものはインサートできないので、CsvImportBehavior.phpのソースをいじるか、beforesaveなどで対応する必要がある。

-PHP
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

S3 commandPoolについて

S3のcommandPoolに関して。 S3にファイルをアップロード、ダウンロードするときに、1つ1つファイルをアップロード、ダウンロードすることが一般的かと思いますが、ファイル数が多くなるとなかなか …

no image

dateTimeの使い方

phpの日付ライブラリであるdateTimeについて。 Contents1 過去のリンク2 頻出表現3 リンク 過去のリンク CakePHP3 日付ライブラリ(Time)について http://ski …

no image

Laravelのサービスプロバイダ

ミドルウェアやルーティング同様、惰性で使っていたサービスプロバイダについてめも。 Contents1 サービスプロバイダとは2 参考リンク・参考文献 サービスプロバイダとは Laravelでは特定のサ …

no image

cakeでのJOINについて&session

Contents1 cakeでのJOIN2 cakeでのsessionについて cakeでのJOIN cakePHPでは基本、hasManyなどの修飾子を使えば、リレーションをとることができますが、検 …

no image

PHPのオートローディング

大規模開発では扱うファイルが増えるため、必要なクラスの読み込みが煩雑になるケースが多いです。 Contents1 従来のPHPのファイルのロード2 オートローディングとは3 サンプルソース4 メモ5 …

アーカイブ