在我的应用程序中,我有三个表:
Users
Profiles
Friends
用户有一个个人资料,个人资料有一个用户和许多朋友。朋友有很多个人资料。
在配置文件模型中,我有一个方法可以获取配置文件的配置文件列表(但它使用来自用户表的相关用户名。)
public function getFriends($username) {
return $this->find('all', array(
'conditions' => array(
'User.username' => $username,
'Friend.status' => 1
)
));
}
所以它应该得到一个与用户名匹配用户和朋友状态为 1 的配置文件列表。我该怎么做呢?
我还将发布我的关联,以便您了解数据库:
用户模型:
public $hasOne = 'Profile';
型材型号:
public $belongsTo = 'User';
public $hasMany = array(
'ProfileFrom'=>array(
'className'=>'Friend',
'foreignKey'=>'profile_from'
),
'ProfileTo'=>array(
'className'=>'Friend',
'foreignKey'=>'profile_to'
)
);
public $hasAndBelongsToMany = array(
'Friendship' => array(
'className' => 'Profile',
'joinTable' => 'friends',
'foreignKey' => 'profile_from',
'associationForeignKey' => 'profile_to'
)
);
public $actsAs = array('Containable');
朋友型号:
public $belongsTo = array(
'UserFrom'=>array(
'className'=>'Profile',
'foreignKey'=>'profile_from'
),
'UserTo'=>array(
'className'=>'Profile',
'foreignKey'=>'profile_to'
)
);
public $actsAs = array('Containable');