我希望有人可以解决我遇到的这个问题。由于某些原因,SO上的其他答案似乎都没有帮助我。
我有两个HABTM关系表。出版物有很多作者,作者有很多出版物。在我的例子中,我试图输出数据库中所有出版物的列表,以及相应的作者。
我有以下表格:
0 TestPublication
0 John Doe A
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吗?
或者......代码实际执行的方式是什么,我的期望是不正确的?如果是这样,我将如何返回所有出版物的列表及其所有作者?
谢谢你的时间!
答案 0 :(得分:0)
我相信我发现了这个问题。我手动将记录插入数据库以进行测试。我将每个表的第一个记录上的主键id设置为零。 SQL DB通常(或总是?)以主键索引为1而不是0来启动第一条记录。我不确定为什么蛋糕不能用于此,但将id更改为1解决了问题。奇怪的...