我希望有人能解决我遇到的这个问题。出于某种原因,关于 SO 的其他答案似乎都没有帮助我。
我有 2 个具有 HABTM 关系的表。出版物有很多作者,作者也有很多出版物。就我而言,我试图输出数据库中所有出版物的列表,以及它们的相应作者。
我有以下表格:
出版物:
身份证标题
0 测试发布
作者:
id 名字 姓氏 中间
0 约翰·多伊
作者_出版物:
id author_id Publication_id
0 0 0
每个表的“id”列设置为主键。
我的出版物模型如下所示:
class Publication extends AppModel {
var $name = 'Publication';
var $hasAndBelongsToMany = array(
'Author'=>array(
'className'=>'Author'
)
);
}
最后,PublicationsController 具有以下功能:
function index() {
$publications = $this->Publication->find('all');
$this->set('publications', $publications);
}
以下是出版物现在包含的内容:
Array ( [0] => Array ( [Publication] => Array ( [id] => 0 [title] => TestPublica [type_id] => 1 ) [Author] => Array ( ) ) )
为什么是这样?我期待(也许这是我的问题......)作者 John Doe 应该出现在 Author 数组中。如果应该是,我哪里错了?我需要在那里的某个地方调用 bindModel 吗?
或者......代码是否真的按照它应该的方式执行并且我的期望不正确?如果是这样,我将如何返回所有出版物及其所有作者的列表?
谢谢你的时间!