首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何装载对外关系laravel 5

如何装载对外关系laravel 5
EN

Stack Overflow用户
提问于 2018-04-24 03:59:23
回答 1查看 281关注 0票数 0

我在一堂4天的课上储存信息。信息是日期1-4,每个日期都有一个与之相关的指导员,因为在不同的日子可以有不同的指导员。现在让我们来谈谈day_1和instructor_day_1。我的模型如下:

课程模式:

代码语言:javascript
运行
复制
public function instructor()
  {
    return $this->belongsTo('App\Instructor');
  }

指导员模型:

代码语言:javascript
运行
复制
  public function course()
  {
    return $this->hasMany('App\Course');
  }

当我进入控制器中的@show方法时,我找到了正确的过程,但是当我试图加载视图时,我无法知道如何访问外部关系。现在我在努力:

代码语言:javascript
运行
复制
<p class="card-text">{{$course->day_1}} assigned to {{$course->instructor_day_1->instructor->name}}</p>

但这只会产生错误。如果我执行{$course->辅导员_day_1}},则从数据库中获得正确的值。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-24 04:56:52

belongsTo是正确的关系,但它的设置不正确。您将需要其中的4个,对于courses表中的每个外键都需要一个。

这应该会让你开始:

代码语言:javascript
运行
复制
public function instructorDay1()
{
    return $this->belongsTo('App\Instructor', 'instructor_day_1');
}

然后你会这样叫它,为了得到导师的名字:

代码语言:javascript
运行
复制
$course->instructorDay1->name;

你需要为所有4种关系做这件事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49993188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档