【发布时间】:2021-10-25 16:25:13
【问题描述】:
我想从用户表中搜索用户名。
我使用了 Laravel 关系(雄辩)。我不从用户表中搜索用户名。我的代码在下面,在这里我解释与所有平板电脑的关系
我在组控制器中有一个查询写入
public function getGroupsData(Request $request){
$group = Group::with(['memberscount', 'getusername'])->where('groupName', "like", "%" . $request->searchText . "%")
->whereHas('getusername.user', function ($query) use ($request) {
return $query->where('name', 'like', '%'. $request->searchText . '%');
})
->get();
}
memberscount和getusername关系写入组模型我的组模型如下
class Group extends Model
{
public function memberscount(){
return $this->hasMany('App\Models\Members', 'group_id', 'id')->where('memberStatus', 'Joined');
}
public function getusername(){
return $this->hasOne('App\Models\Members', 'group_id', 'id')->where('isOwner', 0);
}
}
和成员模型中的用户表关系。成员模型如下
class Members extends Model
{
public function user(){
return $this->hasOne('App\User', 'id', 'user_id');
}
/**get group name */
public function group(){
return $this->hasOne('App\Models\Group', 'id', 'group_id');
}
}
我有搜索用户的数据 this(user) 关系。但我无法搜索多级关系中的数据。
【问题讨论】:
-
我认为您需要查看文档。搜索
whereHas()。 -
@GertB。我也尝试过 whereHas() 但不工作
-
你可以添加你尝试过的代码吗?问题暂时不清楚
-
@GertB。我已经添加了我尝试过的代码。
标签: laravel eloquent foreign-keys eloquent-relationship