Cakephp:如何摆脱未命名的连接?
我想去掉CategoriesRecord数组。 我使用以下方法绑定模型:Cakephp:如何摆脱未命名的连接?,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我想去掉CategoriesRecord数组。 我使用以下方法绑定模型: $this->Category->bindModel( array('hasAndBelongsToMany' => array( 'Record' => array( 'cla
$this->Category->bindModel(
array('hasAndBelongsToMany' =>
array(
'Record' =>
array(
'className' => 'Record',
//'joinTable' => 'categories_records',
'foreignKey' => 'categories_id',
'associationForeignKey' => 'records_id',
'conditions' => array('Record.active' => 1)
)
)
)
);
cheersHabtm需要一个中间表,即您注释掉的关系中的joinTable。默认情况下,这将使用名为CategoriesRecord的AppModel实例,该实例映射到categories_records表 您无法摆脱此中间模型/表格,否则habtm将无法工作。(它是多对多关系的“联接表”)
将数组保存在返回的数据中并没有什么害处——它实际上为您在构建表单/操作链接等时访问每个相关id值提供了一种方便的方法。尝试使用可包含行为来摆脱不需要的东西。使用find()时使用它; 正如jacktrade告诉我们的那样,如果您有很多表和关系,行为是最好的解决方案。即使您可以随时尝试
$this->Model->unbindModel(
array('associationType' => array('associatedModelClassName'))
);
Thx的答案-我使用CONTANDABLE,但我真的无法摆脱数组-我想阿巴·布莱恩特是对的-否则证明我错了如果返回太多数据确实是一个问题-您可以始终使用afterFind回调循环您的结果并取消数组设置。-或者,您可以使用Set类在将其传递给视图之前提取出所需的内容。同样,如果没有中间表,就不会有多对多关系。但是,一旦获取了数据,就可以从每个结果中删除该索引(特别是当您不需要知道视图中的任何位置都涉及到哪两个相关id时)