Я пытаюсь использовать две разные модели категорий для одной и той же таблицы items
.
у меня 3 модели
Категория системы
Schema::create('system_categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->timestamps();
});
Категория пользователя
Schema::create('user_categories', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->integer('user_id');
$table->timestamps();
});
Вещь
Schema::create('items', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->integer('categoryable_id');
$table->string('categoryable_type');
$table->timestamps();
});
Категория элемента может быть из таблицы system_categories
или user_categories
.
Я видел некоторые полиморфные отношения, но они о том, как две разные модели могут принадлежать к одной категории, а не о том, как модель может принадлежать к двум моделям разных категорий.
Спасибо.
SystemCategory
/UserCategory
может быть уItem
? - person Rwd   schedule 07.06.2020Item
будет иметь отношениеmorphTo
, а модели категорий будут иметь отношениеmorphMany
. - person Rwd   schedule 07.06.2020polymorphic associations
. Пожалуйста, проверьте здесь stackoverflow.com/a/441111/2188922 - это предполагает, что вместо сохранения столбца одного типа + внешний ключ (для нескольких таблиц) - предлагается использовать два столбца внешнего ключа (обнуляемые) для двух разных таблиц. Если вы все еще хотите реализовать свой путь; пожалуйста, проверьте этот раздел laravel.com/docs/7.x/ - person Ersoy   schedule 07.06.2020