Создание полиморфных отношений "многие ко многим" с помощью настраиваемой таблицы

Как я могу создать отношения "многие ко многим", используя настраиваемую полиморфную таблицу?

model_has_tags

$table->increments('id');
$table->integer('tag_id';
$table->string('model_type');
$table->integer('model_id');

теги

$table->increments('id');
$table->string('name');

пользователь

$table->increments('id');
$table->string('full_name');

Я пробую это, но не работает.

Модель тега

public function users()
    {
        return $this->morphedByMany(User::class, 'model');
    }

Модель пользователя

public function tags()
    {
        return $this->morphToMany(Tag::class, 'model');
    }

ошибка:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'stormport.models' doesn't exist (SQL: select `tags`.*, `models`.`model_id` as `pivot_model_id`, `models`.`tag_id` as `pivot_tag_id`....

Как это решить?

1 ответ

Нашел решение:

Модель пользователя

    public function tags()
    {
        return $this->morphToMany(Tag::class, 'model', 'model_has_tags');
    }
Другие вопросы по тегам