Laravel Многим-многим Полиморфам c - Запрос к Полиморфным c таблице - PullRequest
0 голосов
/ 04 марта 2020

Я собираюсь использовать пример, который можно найти на сайте 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 задана

Как я могу запросить модель тегов, чтобы получить все теги, которые прикреплены к указанной модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...