为什么我看不到HABTM的结果?

时间:2013-03-05 09:05:29

标签: cakephp has-and-belongs-to-many

我几个月来一直在使用cakephp,今天我遇到了一个问题,我不知道它为什么不能一直工作。

我有三张桌子:

帖子 评论 posts_comments

在模型中,我设置了:

评论模型:

var $hasAndBelongsToMany = array('Post');

发布模型

var $hasAndBelongsToMany = array('Comment');

然后在我的控制器中,例如PostController:

$this->set('comments', $this->Post->Comment->find('list', array('order' => 'Comment.id')));

然后在我的Post View中我有:

<?php
echo $this->Form->create('Post');
echo $this->Form->input('name', array('label' => 'Name', 'maxlength' => '100'));
echo $this->Form->input('Comment.Comment', array('label' => 'New Comment', 'type' => 'select', 'multiple' => true));
echo $this->Form->submit('Add', array('class' => 'button'));
?>

在我的其他项目中它始终有效! 我总是把我的“评论”显示在列表上,但是在这里,我不知道为什么它不起作用,什么都没有显示,我忘记了什么?

此致

4m0ni4c。

1 个答案:

答案 0 :(得分:0)

我不知道你是否解决了它,但根据Cake惯例,HABTM表应命名为alphabeticaly,以便它们可以神奇地工作。

  

这个新的连接表的名称需要包括所涉及的两个模型的名称,按字母顺序排列,并用下划线(_)分隔。表的内容应该是两个字段,每个外键(应该是整数)指向所涉及模型的两个主键

所以你的posts_comments表应该是comments_posts,除非你直接在Post和Comment模型上更改关联。