cakephp中save和saveAll函数有什么区别?

时间:2010-12-23 06:47:00

标签: cakephp

请任何人举个例子

3 个答案:

答案 0 :(得分:7)

save用于简单保存模型:

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

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

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

为了将记录插入到模型的表中(如果未指定id字段)或更新模型表的记录(如果指定了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()User,获取新保存用户的id,然后将Profile设置为user_id id

直接从the book获取的示例。

答案 1 :(得分:0)

saveAll将所有模型数据保存在表单中,而save只保存一个。因此,您可以使用save来保存单个值,而saveAll基本上可以省去使用循环进行保存的麻烦。

答案 2 :(得分:0)

自Cake 2.0起

  

保存将模型数据(基于白名单,如果提供)保存到   数据库。默认情况下,验证在保存之前进行。

     

saveAll 为单个模型保存多个单独的记录;也适用于单个记录及其所有相关记录。