私のアプリケーションには、次のテーブルがあります。
Posts
id
title
content
Users
id
username
password
Profiles
id
user_id
firstname
lastname
Comments
id
post_id
user_id
content
Topics
id
title
Topic_Posts
id
topic_id
post_id
うまくいけば、関係はかなり明白です!私が抱えている問題は、最後のテーブルが投稿とトピック間の多対多の関係の結合テーブルであることです。これを設定する方法が完全にはわかりません!
投稿、トピック、および Topics_Posts のモデルは次のとおりです。
class Post extends AppModel
{
public $name = 'Post';
public $belongsTo = 'User';
public $hasMany = array('Comment', 'TopicPost');
public $actsAs = array('Containable');
}
class Topic extends AppModel
{
public $hasMany = array(
'TopicPost'
);
}
class TopicPost extends AppModel {
public $belongsTo = array(
'Topic', 'Post'
);
}
私が言える限り、関係は正しいですか?そして、私の方法では、次のステートメントがあります。
$post = $this->Post->find('first',
array('contain'=>
array(
'Comment'=>array('User'=>array('Profile')),
'User'=>array('Comment','Profile')
),
'conditions'=>array('Post.id'=>$id)));
したがって、基本的に私の質問は、コメントとユーザーを投稿モデルに追加する必要がなかったため、トピックをコンテンツに追加する方法です。その理由や次に何をすべきかわかりません...
また、どうすればトピックを再び引き出すことができますか? 実際のトピックではなく結合テーブルにリンクしていることを考えると、これがどのように機能するかについて混乱しているため...私が軌道から外れていない限り。これに関するヘルプをいただければ幸いです。