nantekkotai's blog

おもに技術とお仕事に関連することを書いています。

cakePHP1.2のsaveAll

1.1の頃は連続投稿する際に、

foreach ($dataset as $data) {
    $this->Model->create();
    $this->Model->save($data);
}

なんてことをしていましたが、どうやらcakePHP1.2ではsaveAllメソッドで一度に丸ごと突っ込めるみたいです。

$data = array(
    array('name' => 'NAMAE', 'content' => 'BODY'),
    array('name' => 'NAMAE', 'content' => 'BODY'),
    array('name' => 'NAMAE', 'content' => 'BODY')
);
// これで一度にインサートできる。
$this->Model->saveAll($data);

ただし配列の形式が、$data['Model']['name']ではなく、$data['name']でうまくいきました。前者だとエラーが出ました。
SQLデバッグ文を読むと、トランザクション処理もしているみたいです。
1.1からいろいろと変わり過ぎて、正直対応に困っていますが、使いこなせば良いフレームワークなんでしょうね。

広告を非表示にする