Laravel / Eloquent: hasManyThrough вопрос - PullRequest
0 голосов
/ 12 ноября 2019

У меня есть 3 таблицы: Contract, с идентификатором Contract_User, с contract_id и user_id User, с id

Я пытаюсь использовать hasManyThrought для получения информации о пользователе, когда у меня есть контракт, но явозникли проблемы.

Возможно ли это? Спасибо

1 Ответ

2 голосов
/ 12 ноября 2019

Я согласен с Тимом Льюисом. Я думаю, что это просто "просто" BelongsToMany . В зависимости от того, как выглядят ваши модели, вот пример того, как они могут / должны выглядеть.

Если вы используете что-то отличное от внешних ключей по умолчанию, вам нужно будет предоставить эти столбцыв качестве дополнительных параметров. Вы можете найти больше об этом в ссылке выше. Надеюсь, это поможет!

User.php

/**
 * The contracts that belong to the user.
 */
public function contracts()
{
    return $this->belongsToMany('App\Contract');
}

Contract.php

/**
 * The users that belong to the contract.
 */
public function users()
{
    return $this->belongsToMany('App\User');
}

Тогда где-то в вашемКонтроллер, вы получите контракты пользователя по:

$user = App\User::find(1);

foreach ($user->contracts as $contract) {
    // $contract->name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...