Cakephp一次保存多个记录

时间:2015-05-01 12:35:33

标签: php cakephp

是否可以使用$this->save();函数在cakephp中保存多条记录?

2 个答案:

答案 0 :(得分:4)

save()用于简单保存模型:

Array
(
    [ModelName] => Array
    (
        [fieldname1] => 'value'
        [fieldname2] => 'value'
    )
)

假设上述信息存储在名为$ data的数组中,可以调用

    $this->ModelName->save($data);

INSERT记录到模型表中(如果未指定id字段)或UPDATE记录模型表(如果id字段为指定)。

saveAll()用于:

保存模型的多个记录

Array
(
    [Article] => Array
    (
        [0] => Array
        (
            [title] => title 1
        )
        [1] => Array
        (
            [title] => title 2
        )
    )
)       

因此,您可以同时保存许多模型,而不是每次循环和使用save()。

保存模型的相关记录

Array
(
    [User] => Array
    (
        [username] => billy
    )
    [Profile] => Array
    (
        [sex] => Male
        [occupation] => Programmer
    )
)

这会同时保存UserProfile模型。否则,您必须首先为用户致电save(),获取新保存用户的id,然后将Profile设置为user_id保存到id }。

  

直接从the book获取的示例。

答案 1 :(得分:0)

示例:

 $dataMulti = array(
        array(
            'Info' =>
            array(
                'note' => "This is note 1",
                'delete_flag' => "f"
            )
        ),
        array(
            'Info' =>
            array(
                'note' => "This is note 2",
                'delete_flag' => "f"
            )
        ),
        array(
            'Info' =>
            array(
                'note' => "This is note 3",
                'delete_flag' => "f"
            )
        ),
    );

一次保存许多记录 我们有以下两种方式:

1. $infoModel->saveAll($dataMulti);

2. $infoModel->saveMany($dataMulti);