我擁有一位擁有並且屬於許多相關藝術家的藝術家,在這個例子中,我想將麥當娜和她的2位相關藝術家雪兒和凱莉米洛保存在數據庫中。CakePHP:在HABTM中保存數據的正確格式是什麼
DB: 2表:藝術家(ID,姓名,創建)和artists_related(ID,artist_id,related_id)
型號關係設置:
<?php
class Artist extends AppModel {
public $hasAndBelongsToMany = array(
'Related' =>
array(
'className' => 'Artist',
'joinTable' => 'artists_related',
'associationForeignKey' => 'related_id',
'unique' => 'keepExisting'
)
);
我試圖挽救
$test_data = array(
'Artist' => array(
'name' => 'Madonna'
),
'Related' => array(
0 => array(
'name' => 'Kylie Minogue'
),
1 => array(
'name' => 'Cher'
)
)
);
$result = $this->saveAll($test_data, array('deep' => true));
什麼情況是,只有麥當娜被保存在:像這樣的數據藝術家表中,兩個相關的藝術家並沒有保存,也沒有任何內容保存在連接表中。
如何格式化數據數組來完成此操作?或者我需要保存第一個麥當娜,並獲得id,然後將所有相關藝術家保存在不同的saveAll()中?
我不這麼認爲:http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null -array-options-array – 472084
感謝您的回答。這看起來很奇怪,但我試過了。結果是麥當娜被插入**藝術家**表格兩次。凱莉和雪兒沒有,也沒有插入連接表。 – lasse
你有主要的ID,如果是的話,那些必須包括在內。 –