[CakePHP] 複数レコードを一括保存するsaveAllの使い方

CakePHPを使って、テーブル形式で番号順に並んでいるデータを変更したものを、一括でDBに登録したい場合の方法についてです。
エクセルの表みたいにずらーっと並んだデータを変更して更新したい時って多いですよね。
これらはsaveAllメソッドを使えば簡単に実行できてしまいます。

Viewは以下のような画面になります。(name1 age1 などの項目はインプットボックスになっており、フォームの一番下には更新ボタンが付いています)

| name1 | age1 |
| name2 | age2 |
| name3 | age4 |
[更新ボタン]

View

フォームの中に3組のインプットボックスを作ります。

ポイントとなるのは、input ( ‘User.0.name.’)という書き方です。
この書き方をすることによって、POSTで取得されるデータは

$this->User->saveAll($data[‘User’]);

$data[‘User’]というように$dataの後ろにモデル名を指定するところがポイントです。



Author: webmaster