Laravel Красноречивый доступ к третьим отношениям - PullRequest
0 голосов
/ 23 марта 2020

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

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

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

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

Audit
    - id
    - user_id

AuditApplications
    - id
    - audit_id
    - user_id

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

public function profile()
{
    return $this->hasOne('App\Profile');
}

public function auditApplications()
{
    return $this->hasMany('App\AuditApplications');
}

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

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

public function user()
{
    return $this->belongsTo('App\User');
}

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

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

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

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

1 Ответ

0 голосов
/ 23 марта 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...