属于多个外键,laravel

时间:2018-07-18 08:03:25

标签: laravel

早上好

我目前有一个与3个表相关的表。

我想做“ belongsToMany”,但我不知道该如何处理3种关系

表格:

schools_series(关系)

  • id
  • cycle_id
  • school_id
  • serie_id

周期

  • id
  • 有效(对/错)
  • **更多列**

学校

  • id
  • **更多列**

系列

  • id
  • **更多列**

主要模型:

学校

班级学校扩展模型工具 {     使用PresentableTrait;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'network_id',
    'fantasy_name',
    'social_name',
    'email',
    'sim_web_code',
    'state_registration',
    'cnpj',
    'status',
    'start_date',
];

public function series()
{
    return $this->belongsToMany(Serie::class, 'schools_series')->where('id_cycle', 'xxxx');
}

我需要能够根据循环中具有“活动”状态的“ cycle_id”来取出“学校系列”

示例SQL:

SELECT ss.* FROM schools as s
INNER JOIN schools_series as ss
    ON ss.school_id = s.id
INNER JOIN cycle as c
    ON ss.cycle_id = c.id AND c.active = 1
WHERE s.id = 115

1 个答案:

答案 0 :(得分:1)

解决方案:

public function series()
    {
        return $this->belongsToMany(Serie::class, 'schools_series')->withPivot('cycle_id')->join('cycle', 'cycle.id', '=', 'schools_series.cycle_id')->where('cycle.active', '=', 1);
    }