我有兩個MySQL表。CakePHP保存有許多關聯的數據
1)發佈表:每個項目都有一個唯一的ID。
id | title | content | ...
1 | Hi | Oh~ | ...
2)標記表:每個項目的ID不是唯一的。
id | description |
1 | Meow |
1 | Cat |
在我的模型已宣佈後的hasMany標籤和標籤屬於關聯帖子:
//in Post model
var $hasMany = array(
'Tag' => array(
'className' => 'Tag',
'foreignKey' => 'id',
'dependent'=> true
)
//in Tag model
var $belongsTo = array(
'Post' => array(
'className' => 'Post',
'foreignKey' => 'id'
)
);
現在我想保存到我的帖子控制器的數據庫中,我的崗位上做出了改變:
$data = $this->request->data;
foreach($data['Tag'] as &$tagg){
if($tagg["description"]!=""){
$tagg['id'] = $data['Post']['id'];
}
}
if ($this->Post->saveAll($data,array('deep'=>TRUE))) {
var_dump($data);
$this->Session->setFlash(__('Saved.'));
} else {
$this->Session->setFlash(__('Not Saved.'));
}
提交數據後,它閃過Saved
但它沒有保存任何東西到標籤表。它只將數據保存到Post表中。
這裏的var_dump結果:
array (size=2)
'Post' =>
array (size=4)
'id' => string '1' (length=1)
'title' => string 'aa' (length=2)
'content' => string 'hi' (length=2)
'url' => string 'abc' (length=3)
'Tag' =>
array (size=6)
0 =>
array (size=2)
'description' => string 'sadsad' (length=6)
'id' => string '1' (length=1)
1 =>
array (size=1)
'description' => string '' (length=0)
2 =>
array (size=1)
'description' => string '' (length=0)
3 =>
array (size=1)
'description' => string '' (length=0)
4 =>
array (size=1)
'description' => string '' (length=0)
5 => &
array (size=1)
'description' => string '' (length=0)
我怎麼能保存所有數據到兩個標籤和後表?我哪裏出問題了?謝謝!
您的窗體在視圖中是怎樣的?您是否正在嘗試使用信息保存新標籤? – skywalker
「標籤」表不包含post_id字段,請添加並嘗試。因爲那是cakephp標準。 – Pank