Laravel关系多表

时间:2018-09-04 13:42:24

标签: laravel

我有一个这样的数据库:

针对发票:

  • ID
  • 金额
  • Person_iD(与人员表有关)
  • Subaccount_ID(与子帐户表有关)

对于人员:

  • ID

  • 人名

  • Position_ID(与工作台位置有关)

我需要为每个发票显示

  • ID
  • 金额
  • Person_Name(在个人表中的位置)
  • Subaccount_name(在人员表中)
  • Position_name(在表位置中,外键在人员表中)

请问有关此示例的任何文档? 我的关系

在“模型人”中:(与发票/ person_id的关系)

 public function userinvoice() {
return $this->hasMany(Invoice::class, 'person_id');
}

在子帐户模型中:(与发票/ Subaccount_id的关系)

public function subaccountinvoice() {
return $this->hasMany(Invoice::class, 'subaccount_id');
}

在职位模型中:(与人员/ position_id的关系)

 public function pos() {
return $this->hasMany(Person::class, 'position_id');
}

1 个答案:

答案 0 :(得分:1)

我认为您已经正确设置了关系:

$invoice = Invoice::with(['persons' => function($query){
                 $query->with('position')->get()
             }])->with('subaccount')->get();

人名:

$invoice->person->name

子帐户名称:

$invoice->subaccount->name

职位名称:

$invoice->person->position->name