Я долго искал и не смог найти ответ, вот что у меня есть:
1- ShowCategory (идентификатор и заголовок)
class ShowCategory extends Model
{
public function shows()
{
return $this->belongsToMany(Show::class, 'category_show');
}
}
2 - Показать (id, title & active)
class Show extends Model
{
public function categories()
{
return $this->belongsToMany(ShowCategory::class, 'category_show');
}
}
Таким образом, существует отношение «многие ко многим», и мне нужно получить все элементы ShowCategory, к которым относится хотя бы одно шоу, и отфильтровать каждое шоу ShowCategory-> по show.active, только возвращать активные шоу
Вот что я пытаюсь сделать:
$categories = ShowCategory::whereHas('shows', function($query) {
$query->where('shows.active', '=', true);
})->get();
Фильтрует только ShowCategory, которая включает шоу, и, если активен только один из этих шоу, он возвращает категорию со всеми шоу внутри, даже если другие не активны, мне нужно отфильтровать тех, кто не активен.
Что мне делать? Заранее спасибо