Laravel: Как добавить отношение в модель, когда мои внешние ключи находятся в массиве? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть таблица, где мне нужно сохранить идентификаторы в массиве, вы можете увидеть элементы в events_who это внешние ключи.Любое решение, где я могу создать отношение в моей модели, чтобы получить данные из внешних ключей?Я попытался принадлежит ToMany, и это не работает.:(

enter image description here

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Laravel / MySQL (реляционная база данных) на самом деле не работает таким образом.В этом случае вы должны проверить Отношения ко многим ко многим .

Пример схемы / макета таблицы:

users
|id|name|password|

events
|id|title|body|

event_user (pivot table)
|event_id|user_id|

Обычно в столбце не будет массива, вы должны использовать таблицы вместо.Кроме того, обычно внешним ключом будет имя таблицы (единственное число), за которым следует _id.

0 голосов
/ 22 сентября 2018

Давайте предположим, что у нас есть две модели: Event и Person И Person могут участвовать в нескольких Event

На основе упомянутых отношений вам нужно создать сводную таблицу с именемevent_person и определите два отношения belongsToMany() в обеих моделях:

В модели Person отношение будет выглядеть следующим образом:

public function events()
{
    return $this->belongsToMany(Event::class, 'event_person');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...