下表的Laravel Relationships设置

时间:2018-06-28 21:34:43

标签: laravel laravel-5 vue.js

我正在尝试设置考试时间表模块, 这是表结构:-


id
title
start_date
end_date
class_id
subject_id
date(for each subject_id)

现在,问题是class_id在教室表中以“ id”的形式存在,我需要从表中以“ title”的形式获取其名称。对于subject_id,在主题表中以“ id”表示,在表中以“ title”表示其名称。一旦获得这些,数据库表将如下所示:-


id      title           start_date          end_date        class_id        subject_id  date
1       test            some_date           some_date           1           1       date
1       test            some_date           some_date           1           2       date
1       test            some_date           some_date           1           3       date
1       test            some_date           some_date           1           4       date

我该如何设置与关系的控制器,请帮忙!

1 个答案:

答案 0 :(得分:0)

尝试一下。
在考试模型中。

public function class()
{
    return $this->hasMany('App\Class');
}
public function subject()
{
     return $this->hasMany('App\Subject');
}

在课堂模型中。

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

在主题模型中

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

这样,您可以执行

 return $exam->subject->title

 return $exam->class->title

但是,如果您已经在班级和主题之间建立了联系,则可以通过使用归属所属的另一种方法来实现此目的。 https://laravel.com/docs/5.6/eloquent-relationships#has-many-through