创建和更新habtm cakephp

时间:2015-06-24 13:50:47

标签: php mysql cakephp

表:销售,地块(付款方式)和配方。

HABTM:SalePlotRecipe。

* EXAMPLE *
SalePlotRecipe (
  id PrimaryKey,
  sale_id ForeignKey,
  plot_id ForeignKey,
  recipe_id ForeignKey
)

创建或更新销售地块时,应使用销售中填写的数据更新收入。

销售可能会或可能不会分配,但所有销售都有配方。

表I的结点以正确的方式连接三个表?如何为3个表创建记录并更新它们?什么数据格式? CakePHP使用的功能是什么以及如何使用?我尝试了各种表单并更新了重复记录

1 个答案:

答案 0 :(得分:0)

您应该使用saveAll功能插入以及使用清真PHP更新数据。 当您提供特定格式的数据时,这也将插入和更新相关模型的数据。

$this->SomeModel->saveAll($data, array(
'fieldList' => array(
    'SomeModel' => array('field_1'),
    'AssociatedModel' => array('field_2', 'field_3')
)
));
单个关联记录的

格式:

Array
(
[Student] => Array
(
    [first_name] => Joe
    [last_name] => Bloggs
)

[Course] => Array
(
    [name] => Cake
)

[CourseMembership] => Array
(
    [days_attended] => 5
    [grade] => A
)

)

多个相关记录的格式:

 Array
(
[0] => Array
(
    [CourseMembership] => Array
    (
        [id] => 1
        [student_id] => 1
        [course_id] => 1
        [days_attended] => 5
        [grade] => A
    )

    [Student] => Array
    (
        [id] => 1
        [first_name] => Joe
        [last_name] => Bloggs
    )

    [Course] => Array
    (
        [id] => 1
        [name] => Cake
    )
)
)

如果您的数组中有主要字段,则更新与保存类似,然后更新,否则插入。请参阅此链接以获取更多信息。您提供其他表格的结构,然后我可以帮助您使用所需的格式http://book.cakephp.org/2.0/en/models/saving-your-data.html