Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel hasManyThrough带有中间模型约束_Php_Laravel - Fatal编程技术网

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”。