2015-06-24 104 views
-2

表:銷售,圖(付款類型)和配方。創建並更新habtm cakephp

HABTM:SalePlotRecipe。

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

創建或更新銷售地塊時應該使用銷售中填寫的數據更新收入。

銷售可能會或可能不會,但所有銷售都有配方。

表的交界處我正在做正確的方式來加入三個表?如何爲3個表創建記錄並更新它們?什麼數據格式? CakePHP使用什麼函數以及如何使用?我嘗試過各種形式,並更新只是複製記錄

+2

http://book.cakephp.org/3.0/en/orm/database-basics.html這裏你去 –

+0

這一切都清楚地解釋文檔。你使用的是什麼版本的CakePHP。在2.x和3.x之間保存數據顯着不同! – drmonkeyninja

回答

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