0
這是我第一次嘗試在CakePHP中使用HABTM,但它並沒有像我希望的那樣好。HABTM橋數據沒有保存
我有表foos
和表bars
。當foo
得到保存時,我想將幾個bars
與它關聯。我正在嘗試用bars_foos
橋來做到這一點。
我希望能在某種程度上拯救我可以通過一個foo
帶着一幫bars
像一起:
array(2) {
["Foo"]=> array(1) {
["name"]=> string(7) "someFoo"
}
["Bar"]=> array(4) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(9)
}
[2]=> array(1) {
["ID"]=> int(4)
}
[3]=> array(1) {
["ID"]=> int(15)
}
}
}
可以說someFoo
獲取與ID 9創建...我倒是希望下面的記錄將被添加到bars_foos
表:
+--------+----------+
| bar_ID | foo_ID |
+--------+----------+
| 3 | 9 |
| 9 | 9 |
| 4 | 9 |
| 15 | 9 |
+--------+----------+
目前沒有在bars_foos
表發生,只有foos
表是越來越具有t更新他新創建了「someFoo」。這座大橋應該永遠得到更新的唯一時間是創建一個新的Foo
,當我試圖跟隨the CakePHP documentation與我的模型:
class Foo extends AppModel {
public $primaryKey = "ID";
public $hasAndBelongsToMany = array(
'Bar' =>
array(
'className' => 'Bar',
'joinTable' => 'bars_foos',
'foreignKey' => 'foo_ID',
'associationForeignKey' => 'bar_ID'
)
);
}
,並在我的控制器使用此...
$this->Foo->saveAll($data); //$data looks like the Array above in the first code block
我也嘗試過使用這些格式的$data
,這些格式基於我在搜索解決方案時看到的內容:
array(1) {
["Foo"]=> array(3) {
["name"]=> string(7) "FooName"
["Bar"]=> array(2) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(2)
}
}
}
}
和
array(2) {
["Foo"]=> array(1) {
["name"]=> string(7) "fooName"
}
["Bar"]=> array(1) {
["Bar"]=> array(2) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(2)
}
}
}
}
,得到了相同的結果(新foo
被創建,但沒有被插入bars_foos
表)