首页 > 解决方案 > Laravel Eloquent - 与数据透视表的模型关系

问题描述

我真的找不到这些模型的关系解决方案。

  1. 巴士有多个目的地
  2. 目的地有多辆巴士
  3. 学期有一辆公共汽车和一个目的地

公共汽车

目的地

学期


如果公共汽车只有一个目的地,那么我有这个,我认为它应该可以工作。

巴士模型

public function destinations()
{
    return $this->belongsToMany('App\Destination');
}

public function terms()
{
    return $this->hasManyThrough('App\Term', 'App\Destination');
}

目的地模型

public function boats()
{
    return $this->belongsToMany('App\Boat');
}

public function terms()
{
  return $this->hasMany('App\Term');
}

期限模型

public function destination()
{
  return $this->belongsTo('WBZ\Destination');
}

我希望能够实现的目标:

Bus::find(1)->destinations()->get();
Bus::find(1)->terms()->get();

标签: laravelormeloquentmany-to-many

解决方案


巴士模型。

public function destinations()
{
return $this->belongsToMany('App\Destination');
}

public function term()
{
return $this->hasOne('App\Term');
}

目的地模型

public function term()
{
return $this->hasOne('App\Term');
}

public function buses()
{
return $this->belongsToMany('App\Bus');
}

术语模型。

public function destination()
{
 return $this->belongsTo('App\Destination');
}
public function bus()
{
 return $this->belongsTo('App\Bus');
}

推荐阅读