cake焼きました(14)
「cakephpでsaveしまくると1つしか登録されてない」
foreachを使って連続してsave(保存)するつもりが、
デバッグのSQLを見ると2回目以降が同じものにUPDATEされてしまい、
1つしか登録できないという事象が起きました。
$items = array(); foreach ($newHogeDatas as $newHogeData) { $item = array( 'title' => $newHogeData['title'], 'created_on' => date("Y-m-d H:i:s"), $items[] = $this->save($item); } return $items;
調べたら同じ事象にぶつかっている人がいたので試してみる。
http://blog.livedoor.jp/agnode/archives/51157295.html
$items = array(); foreach ($newHogeDatas as $newHogeData) { $item = array( 'title' => $newHogeData['title'], 'created_on' => date("Y-m-d H:i:s"), $items[] = $this->save($item); $this->id = null; } return $items;
foreachで回す時は
idのリセットがキモのようですね。
指摘がありました。idを中に入れてしまうってnullを定義するとスマートです。
$items = array(); foreach ($newHogeDatas as $newHogeData) { $item = array( 'id' => null 'title' => $newHogeData['title'], 'created_on' => date("Y-m-d H:i:s"), $items[] = $this->save($item); } return $items;