我在HABTM連接表中更新(更好地更新而不是重新創建)額外字段有問題。我搜索谷歌和其他來源,但現在掙扎了4天。CakePHP更新HABTM連接表上的額外字段
我有型號:
class Tutorial extends AppModel {
var $hasAndBelongsToMany = array(
'TutorialCategory' => array(
'with' => 'TutorialCategoriesTutorial',
'order' => 'TutorialCategoriesTutorial.order_by ASC',
'unique' => true,
);
}
class TutorialCategory extends AppModel {
var $hasAndBelongsToMany = array(
'Tutorial' => array(
'with' => 'TutorialCategoriesTutorial',
'unique' => true,
);
}
連接表tutorial_categories_tutorial有ID,tutorial_id,tutorial_category_id,ORDER_BY領域。
我試圖更新像ORDER_BY領域:
$order = 1;
foreach($tutorials as $i => $tutorial) {
$this->data[$i]['Tutorial']['id'] = $tutorial['Tutorial']['id];
$this->data[$i]['TutorialCategory']['id'] = $tutorial['TutorialCategory']['id];
$this->data[$i]['TutorialCategoriesTutorial']['order_by'] = $order;
++$order;
}
$this->Tutorial->bindModel(array('hasMany' => array('TutorialCategoriesTutorial')));
$saved = $this->Tutorial->saveAll($this->data);
這是刪除和裝箱的新記錄加入表,但不設置ORDER_BY可言。我想更新記錄並立即設置order_by值。我試過hasMany,但沒有運氣。
請幫忙和/或給予建議和解釋。
謝謝!
是的,我試過了。我製作了TutorialCategoriesTutorial並設置了belongsTo Tutorial(具有許多TutorialCategoriesTutorial)和TutorialCategory(具有許多TutorialCategoriesTutorial)。但沒有運氣。因爲我不知道如何形成$ this->數據來更新這些字段。你能舉個例子嗎? – Orbitum
你只需要像保存其他模型一樣保存它,例如:'$ this-> data ['TutorialCategoryTutorial'] ['tutorial_id']'並使用'$ this-> TutorialCategoryTutorial-> save()' – Dunhamzzz
好的,我會稍後嘗試一下(現在我改變了我的任務)。但它會更新或刪除/插入新值?在我的連接表是ID primary_key - 它不會影響?謝謝 – Orbitum