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

PHPのPDFライブラリに関して。

今月PHPでPDFを出力する要件があったんで色々見てきましたので、まとめを。 昨年もちょっとやりましたが、色々と面倒です。 fpdfはかなり古くダメダメっぽいですね。昨年はじめにPDFを使う要件があっ …

no image

キャッシュについて(主にmemcachedを中心に)

Webサービスのパフォーマンス向上で目に見えて効果があることの一つがDBへのアクセス回数を減らすことです。 それはSQLを発行する回数を少なくするなど、普段からのプログラムの書き方ももちろん大事なので …

no image

cakePHP Tips その2

またまたCakePHPのネタです。 タイトルから内容がわからなくてすいません。 五月雨式に行きます。 Contents1 コントローラーごとのベースになるテンプレートの変更2 linkタグでのHTML …

no image

PHPでの切り上げ誤差問題

PHPを初めて、4年近くたちますがいまだに知らんことが多いですね(爆) 本日は、

になるという非常にビックリな仕様に遭遇・・・ なにや …

no image

dateTimeの使い方

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

アーカイブ