gpt4 book ai didi

php - 使用关系 AR 检索 "OR"条件

转载 作者:可可西里 更新时间:2023-10-31 23:49:32 26 4
gpt4 key购买 nike

我正在使用 Yii 框架,在构建 friend /连接样式系统时遇到了一个问题。我有一个标准用户表并存储 friend 我有一个具有以下布局的 friend 表(已设置适当的 FK 等):

id | userId | friendId | and some other fields...

由于“ friend ”是相互的 - 因此,如果用户 A 是用户 B 的 friend ,则用户 B 也是用户 A 的 friend - 因此每个“友谊”只有一个条目。

我想做的是使用 Yii 的关系查询最终返回属于 friend 的项目。目前我在用户模型中有以下关系...

'friends' => array(self::HAS_MANY, 'UserFriend', 'userId'),

但是,如果用户 ID 出现在 userId 字段中,则只会返回“ friend ”。如果用户的 ID 在 friendId 字段中,则“友谊”将不会被识别。

有没有一种方法可以使用“OR”进行查询 - 例如:如果用户 ID == userId OR 用户 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

希望我没有混淆太多!抱歉解释不当

谢谢:)

最佳答案

按照说明进行操作 here创建数据库命令对象,然后您可以使用 OR 条件进行查询,如下所示:

$command->where(array('OR', 'userID = :userID', 'userID = :friendID'), array(':userID' => $userID, ':friendID' => $friendID));

关于php - 使用关系 AR 检索 "OR"条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com