Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Вчера 16:12:01

Отношения через связующую таблицу с полиморфными полями

Всем добрый день!
Есть несколько моделей, которые могут иметь одно изображение. В тоже время одно изображение может быть привязано к нескольким моделям. Информация о всех изображениях хранится в таблице 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 - список пользователей / оборудования...

Не в сети

Подвал раздела