如何加载国外关系laravel 5

how to load foreign relationship laravel 5

我正在存储为期 4 天的信息 class。信息是日期 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->instructor_day_1}},我会从数据库中获得正确的值。

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

belongsTo 是正确的关系,但设置不正确。您将需要其中的 4 个,courses table.

上的每个外键 1 个

这应该让你开始:

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

然后你会这样调用它,以获取讲师的名字:

$course->instructorDay1->name;

您需要为所有 4 种关系执行此操作。