CakePHPで複数の値を保存する方法

CakePHPであるテーブルのデータをforeachですべて表示し、フォームから個々の値を一気にアップデートってよくあることだと思います。

たとえば、顧客リストがあって、顧客を一覧表示して、年齢を一気に修正したい場合です。
同じ値を入れるではありません。個別の値です。)

ネイティブにPHPで書くとname="array[]"な感じなんですけど、Cakeでハマった。。。

全然できなかったんです。レベル低くてすいません・・・

悩みに悩んで以下の結果となりました。

if (!empty($this->data)) {
    foreach($this->data as $data){
        $this->Data->saveAll($data);
    }
}

なんてことはない受け取った値を順番にforeachでまわしていく、大事なのはsaveAllってとこ
僕のやりたいことの場合saveではダメでした。まだ理解できてないなあ。。

もうひとつ大事なのはViewの方で

<?php foreach($data as $val => $key): ?>
    <?php
        echo $form->input('Data.{$val}.id',
            array(
                'type'=>'hidden',
                'value'=> $key['Data']['id']
            )), PHP_EOL;
    ?>
<?php endforeach; ?>

キーをモデルとそのIDの間に入れてやり、配列として渡してあげることです。

以上CakePHPで複数の値を一気に変更する方法でした。

この本にはかなり助けられてます。