Laravel 5: получить модель отношения с другим идентификатором - PullRequest
0 голосов
/ 06 октября 2018

У меня есть типовой контракт и модельный член.Каждый контракт имеет основного члена, но может иметь подчиненного.

Поэтому в моем контракте таблицы есть member_id и subMember_id.Нет проблем с получением основного участника (member_id), но как я могу получить второго члена с subMember_id?

Спасибо за помощь ...

класс Контракт:

class Contract extends Model
{
    public function members()
    {
        return $this->hasMany('App\Member');
    }

    public function getMember($id)
    {
        $contract = Contract::find($id);

        foreach($contract->members as $member) {
        return $member->name;
    }

    }

    public function getSubMember($id)
    {
        $contract = Contract::find($id);
        $primaryKey = 'subMember_id';

        foreach($contract->members::with('subMember_id')->get() as $member) {
        return $member->name;
    }
    }
}

Участник класса:

class Member extends Model
{

public function contracts(){
    return $this->belongsToMany('App\Contract');
}
...
}

1 Ответ

0 голосов
/ 06 октября 2018

Вы можете установить отношения между Контрактом и Участником на основе первичного ключа submember_id из Контракта.

В классовом Контракте

protected function SubMember(){

   return $this->hasMany('App\Member','Member_id ','SubMember_id ');
}

После этого вы можете использовать этот

$contract = Contract::find($someID);

$subMemeberId = $contract->SubMember->Member_id;
...