Я использую систему аутентификации по умолчанию, которую предоставляет Laravel. Тем не менее, я хочу присоединиться к двум таблицам (выполнить два внутренних объединения) в моей таблице Auth (пользователи). До сих пор я создал две связи между двумя моделями, и это прекрасно работает, и я получаю данные, которые я хочу, однако он выполняет два дополнительных запроса, когда я думаю, что задним числом, выполняющим два соединения на столе, будет намного более эффективно.Laravel Join On Auth Table
То, что я не знаю, как это сделать, - это выполнить Объединение в пользовательской модели, чтобы мне не нужно было создавать новый запрос (а скорее использовать тот, который создается путем вызова Auth :: user ()).
Мои столы:
Users: id username iconid avatarid
Icons: id image
Avatars: id image
Так что я хотел бы сделать, это:
SELECT icons.image as icon_image, avatars.image as avatar_image FROM users LEFT OUTER JOIN icons ON icons.id = users.iconid LEFT OUTER JOIN avatars ON avatars.id = users.avatarid
Возможно ли это? Нужно ли просто переписывать метод в моей модели User, чтобы Auth :: user() выполнил указанный выше запрос?
Спасибо всем, кто отвечает!
Это в значительной степени то, что я сделал, только он создает два дополнительных запроса вместо объединения таблиц в текущий. Значок Auth :: user() -> будет работать, но он создает два дополнительных запроса, которые я пытаюсь избежать. Я хочу, чтобы LEFT OUTER присоединился к таблицам на Auth. Я мог бы создать отдельный метод внутри модели User, но это не повлияет на вызов Auth :: user(). Спасибо за ваш ответ :) – Patchesoft
Добавили пример с объединениями – Rupert
В любом случае, чтобы манипулировать вызовом Auth :: user()? Где бы я поместил код SQL, чтобы Auth :: user() запускал код SQL соединения? Нужно ли переписывать метод в модели User? – Patchesoft