Php Yii2签入查询是否存在相反的值

Php Yii2签入查询是否存在相反的值,php,mysql,database,search,yii2,Php,Mysql,Database,Search,Yii2,我正在制作一个Friends系统,通过在DB中保存两次记录来检查用户是否被邀请/请求和接受 表;朋友 user_id - friend_id 1 - 2 2 - 1 3 - 1 在这种情况下,1和2应该是朋友,1有来自3的请求 这里我缺少的一件事是(使用SearchModel)检查用户1是否在用户2的列表中,用户2是否在用户1的列表中 这是我现在的函数搜索 public function search($params) {

我正在制作一个Friends系统,通过在DB中保存两次记录来检查用户是否被邀请/请求和接受

表;朋友

  user_id - friend_id
      1   -   2
      2   -   1
      3   -   1
在这种情况下,1和2应该是朋友,1有来自3的请求 这里我缺少的一件事是(使用SearchModel)检查用户1是否在用户2的列表中,用户2是否在用户1的列表中

这是我现在的函数搜索

   public function search($params)
{

    $query = Sportbuddies::find()
        ->where(['user_id' => Yii::$app->user->identity->id])
        ->orWhere(['friend_id' => Yii::$app->user->identity->id]);
    // Filter that ONLY shows the Entries where both User_id AND Friend_id
       have the same record in Reverse

    // add conditions that should always apply here

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);

    $this->load($params);

    if (!$this->validate()) {
        // uncomment the following line if you do not want to return any records when validation fails
        // $query->where('0=1');
        return $dataProvider;
    }

    // grid filtering conditions
    $query->andFilterWhere([
        'id' => $this->id,
        'user_id' => $this->user_id,
        'friend_id' => $this->friend_id,
    ]);


    return $dataProvider;
}

这当前会抓取所有记录,这些记录的用户id或好友id为当前用户,但我缺少比较部分。

对于
好友
来说,是否更容易使用两个额外的布尔字段来确认每个用户的好友请求?这样,它简化了所需的代码。是的,我现在甚至用一个布尔字段对其进行了更改,因为用户id是请求者,朋友id是被邀请者,我只需要一个“已接受”的布尔值。简化了代码,工作速度大大加快了xD Tnx