如何加载对外关系laravel 5

时间:2018-04-24 03:59:23

标签: laravel eloquent blade

我将信息存储在为期4天的课程中。信息是日期1-4,每个日期都有一个与之相关的教师,因为在不同的日子可能有不同的教师。我们暂时谈谈day_1和instructor_day_1。我的模型如下:

课程模型:

public function instructor()
  {
    return $this->belongsTo('App\Instructor');
  }

讲师模型:

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

当我在我的控制器中转到@show方法时,我找到了正确的路线但是当我尝试加载视图时,我无法弄清楚如何访问外来关系。现在我正在尝试:

<p class="card-text">{{$course->day_1}} assigned to {{$course->instructor_day_1->instructor->name}}</p>

但这不会产生任何错误。如果我{{$ course-&gt; instructor_day_1}},我会从数据库中获取正确的值。

我的关系倒退了吗?课程模型是否需要“belongsToMany”?拉取讲师信息的正确语法是什么?我是否需要在模型中指定任何外键关系?

enter image description here

1 个答案:

答案 0 :(得分:1)

belongsTo是正确的关系,但未正确设置。而且你需要其中4个,courses表上的每个外键都需要1个。

这应该让你开始:

public function instructorDay1()
{
    return $this->belongsTo('App\Instructor', 'instructor_day_1');
}

然后你会这样称呼它来得到教练的名字:

$course->instructorDay1->name;

你需要为所有4种关系做到这一点。