Php Laravel hasManyThrough带有中间模型约束
嗨,我的实体之间有以下关系Php Laravel hasManyThrough带有中间模型约束,php,laravel,Php,Laravel,嗨,我的实体之间有以下关系 User - id - other stuff NeighborhoodFilter - id - userId - neighborhoodId - isActive Neighborhood - id - other stuff 我想为我的用户对象编写一个方法,该方法将返回用户所属的所有邻域,该邻域在邻域过滤器中由isActive=1表示 我尝试了以下方法,但不知道将约束“isActive=1”放在何处。有什么想法吗 public
User
- id
- other stuff
NeighborhoodFilter
- id
- userId
- neighborhoodId
- isActive
Neighborhood
- id
- other stuff
我想为我的用户对象编写一个方法,该方法将返回用户所属的所有邻域,该邻域在邻域过滤器中由isActive=1表示
我尝试了以下方法,但不知道将约束“isActive=1”放在何处。有什么想法吗
public function neighborhoods()
{
return $this->hasManyThrough('Neighborhood', 'NeighborhoodFilter', 'userId', 'id');
}
如果邻居和邻居之间存在关系,则可以使用
whereHas
函数从邻居中筛选
公共功能社区()
{
返回$this->hasManyThrough('Neighborhood','NeighborhoodFilter','userId','id')->whereHas('neighborhoodFilters',函数($q){
$q->where('isActive',1);
});
}
否则,您可以使用belongstomy
关系和wherePivot
函数
公共功能社区()
{
返回$this->belongtomany('Neighborhood','Neighborhood\u filters','user\u id','neighbork\u id')->wherePivot('isActive',1);
}
谢谢。第二个代码片段对我很有用。运行时的第一个代码段出现“调用未定义的方法邻域过滤器()”错误,并进一步指出“在类HasManyThrough中未找到where”。