2013-03-05 40 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的,除非你直接更改關聯在發表和評論模式。

相關問題