Извлечение многоуровневых связанных записей laravel

#laravel #eloquent #laravel-8 #eloquent-relationship

#ларавель #красноречивый #ларавель-8 #красноречивые-отношения

Вопрос:

я использую Laravel 8. У меня есть 3 таблицы пользователей, кампаний и платежей

У пользователя много кампаний, а у кампании много платежей, в таблице платежей есть идентификатор кампании, а в таблице кампаний есть идентификатор пользователя

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

я так растерян, пожалуйста, помогите

Комментарии:

1. пожалуйста, поделитесь своими отношениями, чтобы дать вам лучшее решение

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

ваш запрос очень прост, если вы используете красноречивые связи, попробуйте эту строку кода

 Auth::user()-gt;campaigns()-gt;payments();  

если вы хотите сделать это вручную

 User::query()  -gt;join('campaigns c' , 'c.user_id' , '=' , 'users.id')  -gt;join('payments p' , 'p.campaign_id ' , '=' , 'c.payment_id')  -gt;get(['p.*']);