Управление отношениями Laravel на нескольких столбцах, - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть 4 таблицы

Таблица-A, Таблица-B, Таблица-C, Таблица-D

Таблица-B, Таблица-C, Таблица-D - главная таблица, а в таблице-A у меня есть reference_id других таблиц.

Структура таблицы-A

Id           reference_id             content_data                reference_type 
1               1             Test Content related to Table-B       Table-B
2               1             Test Content related to Table-C       Table-C
3               1             Test Content related to Table-D       Table-D

Структура таблицы-B

Id           content_data
1            information of B

Структура таблицы C

Id           content_data
1            information of C

Структура таблицы D

Id           content_data
1            information of D

У меня естьэтот тип запроса и отношения, которые будут возвращать содержимое таблицы A с отношением других таблиц,

Table-A::select('*')
            ->where('id', $id)
            ->with('Table-B', 'Table-C', 'Table-D')
            ->first();

Но здесь у меня возникает проблема, когда я выбираю данные, все отношения имеют результат как всеТаблица содержит id=1, так как управлять этими записями, чтобы получить значения отношений, у которых поле reference_type соответствует Table-A?

1 Ответ

0 голосов
/ 07 ноября 2019

Вы получите с Полиморфные типы отношения.

Вы получите пример по Laravel Polymorphic Relationship

...