我正在尝试使用 CakePHP 构建 Twitter 克隆。我在我的模型之间建立了一个 HABTM 关系(我不是 100% 确定我这样做是否正确)。我的数据库中有 3 个表:
- 用户(id、用户名、密码)
- 推文(id、tweet_msg、user_id、已创建)
- 关系(id、user_id、follower_id)
我的模型是这样设置的:
用户模型:
<?php
class User extends AppModel {
var $name = 'User';
var $hasMany = 'Tweet';
var $hasAndBelongsToMany = array(
'Follower' => array(
'className' => 'Follower',
'joinTable' => 'relationships',
'foreignKey' => 'user_id',
'associationForeignKey' => 'follower_id'
)
);
推文型号:
<?php
class Tweet extends AppModel {
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => 'Tweet.created DESC'
)
);
}
追随者型号:
<?php
class Follower extends AppModel{
var $name = 'Follower';
var $useTable = 'users';
}
假设我正确设置了 HABTM 关联,我正在尝试获取用户关注的人的推文,但我不知道查询应该是什么样子。我尝试了几种方法来做到这一点,但没有一个奏效。我认为我不确定如何获取用户的以下 ID。我试过类似的东西:$this->User->Follower->find('list');
但我不知道我是否走对了路。谁能告诉我如何获取用户关注的人的推文?将不胜感激,谢谢。