HABTM結合テーブルの追加フィールドを更新する(更新しない方がよい)問題があります。私はGoogleや他の情報源を検索しましたが、今は4日間苦労しています。HABTM結合テーブルのCakePHP更新追加フィールド
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,
);
}
は、ID、tutorial_id、tutorial_category_id、ORDER_BYフィールドを持つtutorial_categories_tutorialテーブルに参加:
は私がモデルを持っています。以下のような私は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の値を設定したい。私は幸運を経ずに何度も試みました。
助けを借りて助言や説明をしてください。
ありがとうございました!
ええ、私はそれを試しました。モデルTutorialCategoriesTutorialを作成し、belongsTo Tutorial(TutorialCategoriesTutorialが多数あります)とTutorialCategory(TutorialCategoriesTutorialが多数あります)を設定しました。しかしそれで運がない。なぜなら、これらのフィールドを更新するための$ this->データの作成方法を理解できないからです。私に例を挙げてもらえますか? – Orbitum
'$ this-> data ['TutorialCategoryTutorial'] ['tutorial_id']'と '$ this-> TutorialCategoryTutorial-> save()'を使用するなど、他のモデルと同じように保存してください。 – Dunhamzzz
後でちょっと試してみてください(今私は自分の仕事を変えました)。しかし、新しい値を更新または削除/挿入しますか?私の結合テーブルではidはprimary_keyです - 影響はありませんか?ありがとう – Orbitum