Я собираюсь использовать пример, который можно найти на сайте Laravel docs, для создания отношений polymorphi c "многие ко многим" в базе данных.
posts
id - integer
name - string
videos
id - integer
name - string
tags
id - integer
name - string
taggables
tag_id - integer
taggable_id - integer
taggable_type - string
Мой вопрос просто, но не смог найти ответ.
Если таблица тегов содержит 1000 тегов, а таблица тегов содержит связи с различными моделями, как бы я запросил в БД в Eloquent только те теги, которые принадлежат к модели Post?
ОБНОВЛЕНИЕ
То, что я пытаюсь достичь, это
Tag::whereHasMorph('posts', Post::class);
Это должно затем вернуть все теги, которые используются в сообщениях.
Мой Тег. php модель
public function posts()
{
return $this->morphedByMany(User::class, 'taggable');
}
Мой Пост. php модель
public function tag()
{
return $this->morphToMany(Tag::class, 'taggable');
}
Это дает мне следующее сообщение об ошибке:
Аргумент 1, передаваемый в Illuminate \ Database \ Eloquent \ Builder :: getBelongsToRelation (), должен быть экземпляром Illuminate \ Database \ Eloquent \ Relations \ MorphTo, экземпляром Подсветка \ База данных \ Eloquent \ Relations \ MorphToMany задана
Как я могу запросить модель тегов, чтобы получить все теги, которые прикреплены к указанной модели?