如何加载国外关系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 种关系执行此操作。
我正在存储为期 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.
这应该让你开始:
public function instructorDay1()
{
return $this->belongsTo('App\Instructor', 'instructor_day_1');
}
然后你会这样调用它,以获取讲师的名字:
$course->instructorDay1->name;
您需要为所有 4 种关系执行此操作。