0

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

我有三张桌子:

发表评论 posts_comments

在模型中,我设置:

评论型号:

var $hasAndBelongsToMany = array('Post');

后模型

var $hasAndBelongsToMany = array('Comment');

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

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

然后在我的帖子视图中我有:

<?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。

4

1 回答 1

0

我不知道你是否解决了它,但根据 Cake 的约定,HABTM 表应该按字母顺序命名,这样它们才能神奇地工作。

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

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

于 2013-04-04T16:39:40.847 回答