Laravel 5:获取具有不同ID的关系模型

时间:2018-10-06 13:18:30

标签: laravel relationship primary-key

我有一份示范合同和一名示范成员。 每个合同都有一个主要成员,但可以有一个子成员。

因此,我的表合同有一个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 :(得分:0)

您可以基于Contract中的submember_id主键在Contract和Member之间建立关系。

在班级合同中

protected function SubMember(){

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

之后,您可以使用此

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

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