@EVOSandru6

Как в laravel преобразовать sql запрос в Eloquent отношение?

Добрый день.

Мне нужно достать всех участников ( members ) в сыгранных играх.

select
    members.id,
    members.game_id,
    members.profile_id
from
    members
where
    members.id in (
        select
            games.id
        from
            games
        left join members on games.id = members.game_id
        left join profiles on profiles.id = members.profile_id
        where profiles.id = '4'
    ) and member.profile_id != '4';


Связи такие:

Profiles ( профили ) <- Members ( связочная ) -> Games ( игры )

Как можно получить тот же набор данных через belongs относительно текущией модели Profile?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
Исходный SQL запрос на первый взгляд возвращает какую-то дичь:
members.id in (
        select
            games.id
        from
            games

Для получения ЕГО результатов непонятно, что нужно сделать. Для получения всех участников игры смотреть в https://laravel.com/docs/8.x/eloquent-relationship... , для отбора в связанных таблицах: https://laravel.com/docs/8.x/eloquent-relationship...
Ответ написан
@Stalinko
PHP'шник и фрилансер до мозга костей
В модели Profile объявляешь связь many-to-many с моделью Game

Далее можешь пользоваться $profile->games.

https://laravel.com/docs/8.x/eloquent-relationship...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы