我在laravel中有一个Web应用程序,我有3个表:
用户
类别
以及名为:subscriptions
我有以下字段:UserID,CategoryID,parent_id
UserID和CatgeoryID从“用户”和“类别”表的ID中保存, parent_id是额外字段。
我的模特是这样的:
用户表型号:
public function categories(){
return $this->belongsToMany('App\Categories','subscriptions','UserID','CategoryID')->withPivot('parent_id');
}
分类表型号:
public function users(){
return $this->belongsToMany('App\User','subscriptions','CategoryID','UserID')->withPivot('parent_id');
}
现在我的问题是,我想通过额外的数据透视字段'parent_id' 访问用户表记录。我想找到例如'parent_id'= 3的用户。
我想将记录作为用户对象返回,尝试此代码没有帮助:
$category = new Categories();
$users= $category ->users()->where('parent_id','=',3)->get();
如何通过使用雄辩来访问这些用户?
答案 0 :(得分:1)
您可以将where
替换为wherePivot
示例:
$category->users()->wherePivot('parent_id','=',3)->get();
答案 1 :(得分:0)
也许这对你想要达到的最终结果有用吗?
$category = new Categories();
$category = $category->whereHas('users', function ($query) {
$query->where('parent_id', '=', 3);
})->get();
修改强>
获取用户:
$category = new Categories();
$users = $category->whereHas('users', function ($query) {
$query->where('parent_id', '=', 3);
})->get()->users;