Оставьте столбцы с именами в соответствии с тем, что вы написали в диаграмме отношений, и назовите таблицы как year, depts ,андидаты , затем определите Year hasMany Dept и hasMany Candidate :
class Year extends Model
{
public function depts()
{
return $this->hasMany('App\Dept');
}
public function candidates()
{
return $this->hasMany('App\Candidate');
}
}
Затем вы можете взять их всех методом , в контроллере:
$years = App\Year::with(['depts', 'candidates'])->get();
ОБНОВЛЕНИЕ
Кандидат также может быть основной моделью, применяя Вложенную нетерпеливую загрузку .
. Убедитесь, что вы определили Кандидата и Отдел сначала:
Модель-кандидат
class Candidate extends Model
{
public function Year()
{
return $this->belongsTo('App\Year');
}
}
Модель Dept
class Dept extends Model
{
public function Year()
{
return $this->belongsTo('App\Year');
}
}
В контроллере
$candidates = App\Candidate::with('year.depts')->get();