我使用Yii框架,并在构建Friend/Connection样式系统时遇到了问题。我有一个标准的用户表和存储的朋友我有以下布局的朋友表(适当FKS等已建立):使用关系AR检索“OR”条件
id | userId | friendId | and some other fields...
由于“朋友”是相互的 - 所以,如果用户A是用户B的朋友,那么用户B是用户A的朋友 - 因此每个“友谊”只有一个条目。
我想要做的就是使用Yii的关系查询来最终返回属于朋友的物品。目前,我有在用户模式下的关系...
'friends' => array(self::HAS_MANY, 'UserFriend', 'userId'),
但是,只有收益“朋友”如果用户的ID出现在userId字段。如果用户的ID位于friendId字段中,则“友谊”不会被识别。
有没有一种方法来查询使用“或” - 例如:如果用户的ID == userId或用户的ID == friendId然后返回该条目?
另外,有没有办法让Yii返回其他ID,所以如果用户ID == userId会返回friendId,否则如果用户ID == friendId则返回userId?
我最终试图做一些事情,如:
$userModel = User::model()->findByPk(Yii::app()->user->id); // user's model
$userFriends = $userModel->with(items)->friends; // return friends with their items
但愿我没有弄得太多了!对不起,我可怜的解释
谢谢:)
我看着那个选项,反正是有其整合为“关系”这样我就可以去'$用户> friends'然后执行DAO? –
问题是关于ActiveRecord,你在回答与DAO无关的问题。 – cebe