2013-03-05 42 views
0

我几个月以来一直在使用cakephp,今天我有一个问题,我不知道为什么它不能像往常一样工作。为什么我看不到HABTM的结果?

我有三个表:

帖子 评论 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。

+1

您可能不希望为帖子和评论使用HABTM关系,因为评论不能属于许多帖子,它通常只属于一个帖子,帖子可以有很多评论。因此'Post'应该有'haveMany''Comment','Comment'应该'belongsTo'' Post'。 – 2013-03-05 09:07:59

+0

我选择这个例子来说明我的问题,我的情况,真的需要HABTM关系:) – NH3 2013-03-05 09:24:37

+0

我的主要问题是我通常不需要在我的别人输入中指定“选项”值,但是在这里,我真的不知道为什么,如果我没有指定这个变量,我不能显示我的评论:/ – NH3 2013-03-05 09:51:23

回答

0

我不知道你是否已经解决了这个问题,但根据Cake的约定,HABTM表格应该命名为alphabeticaly,他们可以在下工作

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

所以你posts_comments表应该是comments_posts的,除非你直接更改关联在发表和评论模式。

相关问题