Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем добрый день!
Есть несколько моделей, которые могут иметь одно изображение. В тоже время одно изображение может быть привязано к нескольким моделям. Информация о всех изображениях хранится в таблице images.
По конкретнее...
Модели: User, Equipment, Vehicle
Изображения: Image
Т.е. например User может иметь только одно Image, а одно Image может быть привязано к нескольким User. Также с Equipment и Vehicle.
Все привязки я хочу сделать через таблицу imageables:
Schema::create('imageables', function (Blueprint $table) {
$table->id();
$table->foreignId('image_id')
->constrained('images')
->cascadeOnDelete();
$table->morphs('imageable');
$table->timestamps();
$table->unique(['image_id', 'imageable_id', 'imageable_type']);
});
Но пока не пойму, как мне связать всё это через такую связующую таблицу? Чтобы например $user->image сразу выдавало изображение, а $mage->users / $image->equipment - список пользователей / оборудования...
Не в сети
Из описания не очевидно зачем тебе нужна промежуточная таблица. Тем более непонятно как ты видишь cascadeOnDelete() когда одно изображение привязано к нескольким сущностям ))) Что должно происходить?
Связи ты можешь настраивать напрямую от User, Equipment, Vehicle к Image как hasOne. Пока не вижу зачем что-то иное.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети