【问题标题】:Laravel filter by many to many relation of a relationLaravel通过关系的多对多关系过滤
【发布时间】:2018-05-20 11:30:33
【问题描述】:

我正在编写一个电影和系列数据库。我想让按流派过滤成为可能。

对于电影部分,这很容易。在我的电影模型中,我可以添加一个流派范围:

public function scopeGenres($query, $genres)
{
    return $query->whereHas('genres', function($q) use ($genres){
        $q->whereIn('genres.genre_id', $genres);
    });
}

现在我想将它包含在系列模型中。问题:我显示的是季节而不是系列,并且流派是附加到系列的。

就像:

Season belongsTo Serie morphToMany Genre

我已经尝试过:

$seasons->with('serie' => function($query) use ($genre_ids){
    $query->whereHas('genres', function($q) use ($genre_ids){  
        $q->whereIn('genres.genre_id', $genres);
    });
});

但没有成功。

如何按流派过滤季节?

【问题讨论】:

  • 不成功究竟是什么意思?没有结果?错误?

标签: laravel filter many-to-many relationship relation


【解决方案1】:

您只需将with 函数替换为另一个whereHas

$seasons->whereHas('serie', function($query) use ($genre_ids) { 
    $query->whereHas('genres', function($q) use ($genre_ids){ 
        $q->whereIn('genres.genre_id', $genres);
    }); 
});

【讨论】:

  • 该死的太容易了.... 完美!我不会想出这个主意。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2018-04-19
  • 1970-01-01
  • 2014-10-14
  • 2020-06-18
相关资源
最近更新 更多