基于第三个表在eloquent orm中定义关系

时间:2014-03-16 16:07:06

标签: orm laravel relational-database eloquent

我有3个表,如何根据绑定它们的合约定义分类法和用户之间的关系?

Taxonomy  : tax_id,name
Users     : user_id,name
contracts : tax_id,user_id,start_time,end_time

SQL: SELECT * FROM taxonomy t where t.tax_id in(select tax_id from contracts where user_id = 3 and DATE() between Start_time and end_time)

但如何在雄辩的orm中定义这种关系?

1 个答案:

答案 0 :(得分:-1)

在分类法和具有合同的用户之间定义多对多关系作为数据透视表,更多内容在docs

要访问start_time和end_time,您必须在定义relationship时指定它们,例如在分类模型中:

class Taxonomy extends Eloquent {

  public function users()
  {
      return $this->belongsToMany('User')->withPivot('start_time', 'end_time');
  }

}