それ自体と HABTM 関係を持つモデル 'Catgeory' があります
public $hasAndBelongsToMany = array(
'SubCategory' => array(
'className' => 'Category',
'joinTable' => 'categories_subcategories',
'foreignKey' => 'category_id',
'associationForeignKey' => 'subcategory_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
これは、カテゴリを保存するために使用しているコードです。このカテゴリを親 ($id) の子にして、関係を作成したい
$this->Category->create();
$c["Category"]["title"] = $this->request->data["title"];
$c["SubCategory"]["CategoriesSubcategory"]["category_id"] = $id;
構造は私には正しいように見えますが、これは関係を作成しません。ただし、使用して関係を作成しようとすると
$c["SubCategory"]["CategoriesSubcategory"]["subcategory_id"] = $id;
これは機能しますが、親と子は逆です。したがって、これは、foreignKey と associationForeignKey が間違っていることを示唆しています。だから私は私の関係でそれらを変えました:
public $hasAndBelongsToMany = array(
'SubCategory' => array(
'className' => 'Category',
'joinTable' => 'categories_subcategories',
'foreignKey' => 'subcategory_id',
'associationForeignKey' => 'category_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
これは、関係が適切に保存されることを意味しますが、すべてのカテゴリを見つけると、子が結果に表示されなくなるため、この関係は間違った方法であると思います。
私が間違っているアイデアはありますか?何か間違って保存していますか?モデル SubCategory を作成する必要がありますか?