2013-05-08 4 views
0

У меня есть модель события и метод getEvents(), который получает список событий из моей таблицы событий в моей базе данных.Несколько отношений в Laravel Query Builder

Каждое событие, в свою очередь, связано с ним делегатами, и это было усложнено.

Существует 3 таблицы, delegate_event (это сводная таблица, которая связывает делегаты с событием на основе event_id и delegate_id), делегаты (простая таблица, содержащая поле id и поле contact_id), и таблицу контактов, которая содержит информацию о списке контактов.

Таблица делегатов использует contact_id для связи с таблицей контактов и получения различных сведений, связанных с этим контактом.

Я использую Query Builder и метод leftJoin, чтобы получить большую часть информации, необходимой мне для каждого события, но теперь мне нужно просмотреть список делегатов. http://paste.laravel.com/qSa

Я не могу понять, как присоединиться к контактам, связанным с делегатами, связанными с событием через таблицу delegate_event.

Может кто-нибудь помочь мне здесь, пожалуйста. Благодарю.

ответ

0

Для события-пользователя вам нужна таблица «многие-ко-многим», так как для нескольких событий будет связано с ним несколько пользователей (делегатов).

Вот что у меня есть:

mtm_event_user: ID, события, пользовательские

события: идентификатор, имя (события)

пользователей: идентификатор, контактные

Контакты: ID, имя, адрес и т. Д.

Вот запрос, который у меня есть, вы можете изменить SELECT, чтобы соответствовать тем полям, которые вам нужны.

SELECT * 
FROM contacts 
INNER JOIN users ON users.contact = contacts.ID 
INNER JOIN mtm_event_user AS meu ON meu.user = users.id 
WHERE meu.`event` = 1 

Для нескольких событий замените WHERE meu. event = 1 с ORDER BY meu. event