gpt4 book ai didi

php - Laravel hasManyThrough 对中间模型有约束

转载 作者:可可西里 更新时间:2023-11-01 00:30:28 24 4
gpt4 key购买 nike

您好,我的实体之间存在以下关系。

User
- id
- other stuff
NeighborhoodFilter
- id
- userId
- neighborhoodId
- isActive
Neighborhood
- id
- other stuff

我想为我的用户对象编写一个方法,该方法将返回用户所属的所有 Neighborhoods,这些 Neighborhoods 由 NeighborhoodFilter 中的 isActive = 1 指示。

我尝试了以下方法,但我不知道将约束“isActive=1”放在哪里。有什么想法吗?

public function neighborhoods()
{
return $this->hasManyThrough('Neighborhood', 'NeighborhoodFilter', 'userId', 'id');
}

最佳答案

如果您在 Neighborhood 和 NeighborhoodFilter 之间有关系,您可以使用 whereHas 函数。

public function neighborhoods()
{
return $this->hasManyThrough('Neighborhood', 'NeighborhoodFilter', 'userId', 'id')->whereHas('neighborhoodFilters', function($q){
$q->where('isActive', 1);
});
}

否则,您可以使用 belongsToMany 关系和 wherePivot 函数。

public function neighborhoods()
{
return $this->belongsToMany('Neighborhood', 'neighborhood_filters', 'user_id', 'neighbor_id')->wherePivot('isActive', 1);
}

关于php - Laravel hasManyThrough 对中间模型有约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34884370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com