Laravel Eloquent получает доступ к третьим отношениям

У меня есть 4 модели: пользователь, профиль, аудит и аудит приложений.

Моя структура таблицы выглядит примерно так:

User
    - id
    - ... other user-related fields

Profile
    - id
    - user_id
    - ... various profile fields

Audit
    - id
    - user_id

AuditApplications
    - id
    - audit_id
    - user_id

Моя модель User выглядит следующим образом:

public function profile()
{
    return $this->hasOne('AppProfile');
}

public function auditApplications()
{
    return $this->hasMany('AppAuditApplications');
}

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

Далее у меня есть таблица AuditApplications, в которой содержится список идентификаторов пользователей и идентификаторов аудита пользователей, которые подали заявки на аудит. Моя таблица AuditApplications имеет следующие отношения.

public function user()
{
    return $this->belongsTo('AppUser');
}

Таким образом, я могу вернуть список пользователей, которые подали заявку на аудит следующим образом:

$applicants = AuditApplications::where('audit_id', $audit->id)->with('user')->get();

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

Есть ли способ сделать это в Eloquent без создания цикла в моем контроллере, чтобы затем зацикливать каждого пользователя, получая свои профили индивидуально?

Всего 1 ответ


вам просто нужно сделать ->with('user.profile')


Есть идеи?

10000