我正在尝试设置考试时间表模块, 这是表结构:-
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
我该如何设置与关系的控制器,请帮忙!
答案 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