我想按照
之后的($ _POST ['search']'“name”和“lastname”')搜索用户“user id = 1”
我得到了用户,我得到的用户
“name”和“lastname”
我得到了表追随者,我得到了粉丝
“follower_id”和“user_id”......
我知道要做到这一点我必须使用相关的模型,但我不知道如何......
//$user_id = 1 (in followers.user_id)
//$_POST['search'] (in users.name and users.lastname)
public function u_followers_search($user_id) {
$followers = ...
return $followers;
}
答案 0 :(得分:0)
您需要在User
型号上设置关系:
function followers() {
return $this->hasMany(Follower::class)
}
这将使您能够:
$userId = 1 // or however you get the user id
$user = User::findOrFail($userId)->followers;
修改强>
通过这种关系,这意味着您将能够获得跟随特定用户的所有关注者:
$allFollowers = User::findOrFail($userId)->followers;
这将为所有关注用户ID为<1 / p>的用户提供帮助
然后,您可以继续查询并添加匹配条件
$allFollowers->where('name', 'like', '%' . $search . '%')
->orWhere('lastname', 'like', '%' . $search . '%')
->get();
这会过滤ID为1的用户的所有关注者,并且只会在name
或lastname
编辑2:
为了实现上述目标,您需要双向建立关系:
User
型号:
function followers() {
return $this->hasMany(Follower::class)
}
Follower
型号:
function user() {
return $this->belongsTo(User::class)
}
这将使您能够获得指定用户的关注者