0

私は数か月前から Cakephp を使用していますが、今日、いつものように機能しない理由がわからないという問題があります。

私は3つのテーブルを持っています:

投稿コメント 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 テーブルは魔法のように機能するようにアルファベット順に名前を付ける必要があります。

この新しい結合テーブルの名前には、関連する両方のモデルの名前をアルファベット順に含め、アンダースコア ( _ ) で区切る必要があります。テーブルの内容は 2 つのフィールドである必要があり、各外部キー (整数である必要があります) は、関連するモデルの両方の主キーを指しています。

したがって、Post および Comment モデルで関連付けを直接変更しない限り、posts_comments テーブルは comments_posts である必要があります。

于 2013-04-04T16:39:40.847 に答える