У меня есть две таблицы: сообщения и страницы, которые используют одну таблицу для тегов (morphToMany).
Мои таблицы и отношения:
Таблица: теги
идентификатор, имя
public function posts()
{
return $this->morphedByMany('App\Post', 'taggable');
}
public function pages()
{
return $this->morphedByMany('App\Page', 'taggable');
}
Таблица: сообщения
идентификатор, имя, активный
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
Таблица: Страницы
идентификатор, имя, активный
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
Как я могу получить все теги и считать из обеих таблиц, где pages.active и posts.active
Я пробовал этот запрос, но этот запрос возвращает только теги обеих моделей:
Tag::whereHas("posts", function($q) {
$q->where("posts.active", "=", 1);
})->whereHas("pages", function($q) {
$q->where("pages.active", "=", 1);
})->get();
Мне нужен запрос, который может вернуть тег, если существует в одной из моделей, но где активен = 1.