Создание полиморфных отношений "многие ко многим" с помощью настраиваемой таблицы
Как я могу создать отношения "многие ко многим", используя настраиваемую полиморфную таблицу?
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');
}