我想摆脱CategoriesRecord Array。 我使用以下方法绑定模型:
$this->Category->bindModel(
array('hasAndBelongsToMany' =>
array(
'Record' =>
array(
'className' => 'Record',
//'joinTable' => 'categories_records',
'foreignKey' => 'categories_id',
'associationForeignKey' => 'records_id',
'conditions' => array('Record.active' => 1)
)
)
)
);
欢呼声
答案 0 :(得分:1)
Habtm需要一个中间表 - 这是您注释掉的关系中的joinTable。默认情况下,这将使用名为CategoriesRecord的AppModel实例,该实例映射到categories_records表。
你不能摆脱这个中间模型/表或habtm将无法正常工作。 (它是多对多关系的“连接表”)
将数组保留在返回的数据中确实没有任何害处 - 它实际上为您提供了在构建表单/操作链接等时访问每个相关id值的便捷方法。
答案 1 :(得分:1)
尝试可以包含的行为来摆脱你不需要的东西。使用find()时使用它; http://book.cakephp.org/view/1323/Containable
答案 2 :(得分:1)
正如Jacktrade告诉Containable行为是最好的解决方案,如果你有很多表和关系。即使你可以动态尝试BindModel and Unbind Model。
$this->Model->unbindModel(
array('associationType' => array('associatedModelClassName'))
);