在索引控制器中,我不需要任何条件,因此数据可以非常清晰地检索所有关系模型。
$questions = Question::with('user','courses','subjects')->take(10)->orderBy("id","DESC")->get();
这会返回问题列表,其中包含user
courses
和subject
等所有相关数据
但是在课程控制器中,当尝试使用相同的方法检索数据并为课程slug添加条件时,则返回错误。
$questions = Question::with('user','courses','subjects')->where("slug",$course)->take(10)->orderBy("id","DESC")->get();
因为它在问题表查询中添加了这个条件所以没有slug
coloumn。
当我使用course
课程进行检索时,会返回正确的结果,但subjects
和users
缺失
$questions = Course::with("question")->where("nick_name",$course)->orWhere("slug",$course)->orderBy("id","DESC")->take(10)->get();
然后我如何获得所有相关数据。 课程模型已经
public function question(){
return $this->belongsToMany('App\Models\Question','university_questions')->take(10);
}
和问题模型有
public function courses(){
return $this->belongsToMany('App\Models\Course','course_questions');
}
public function subjects(){
return $this->belongsToMany('App\Models\Subject','subject_questions');
}
public function years(){
return $this->hasMany('App\Models\QuestionYear');
}
这里缺少什么,请帮助。
答案 0 :(得分:2)
如果你想获得多个关系,你需要传递数组,比如
$questions = Course::with([
'questions.user',
'questions.courses',
'questions.subjects'
])
->take(10)
->where("slug",$slug)
->orderBy("id","DESC")
->get();