Php Yii2签入查询是否存在相反的值
我正在制作一个Friends系统,通过在DB中保存两次记录来检查用户是否被邀请/请求和接受 表;朋友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) {
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