Php laravel在以下关系中添加条件

Php laravel在以下关系中添加条件,php,laravel,laravel-5,Php,Laravel,Laravel 5,在index controller中,我不需要任何条件,所以数据可以通过所有关系模型非常清晰地检索 $questions = Question::with('user','courses','subjects')->take(10)->orderBy("id","DESC")->get(); 这将返回包含所有相关数据的问题列表,如用户课程和主题 但在courses controller中,当尝试检索具有相同条件的数据并为course slug添加条件时,则返回错误 $que

在index controller中,我不需要任何条件,所以数据可以通过所有关系模型非常清晰地检索

 $questions = Question::with('user','courses','subjects')->take(10)->orderBy("id","DESC")->get();
这将返回包含所有相关数据的问题列表,如
用户
课程
主题
但在courses controller中,当尝试检索具有相同条件的数据并为course slug添加条件时,则返回错误

$questions = Question::with('user','courses','subjects')->where("slug",$course)->take(10)->orderBy("id","DESC")->get();
因为它在问题表查询中添加了这个条件,所以没有
slug
column。 当我使用
课程
类检索时,它返回正确的结果,但是
主题
用户
丢失

$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');
}

此处缺少的内容请帮助。

如果要获得多个关系,需要通过数组,如下所示

$questions = Course::with([
              'questions.user',
              'questions.courses',
              'questions.subjects'
              ])
              ->take(10)
              ->where("slug",$slug)
              ->orderBy("id","DESC")
              ->get();

如果您想要获得多个关系,您需要传递数组,如下所示

$questions = Course::with([
              'questions.user',
              'questions.courses',
              'questions.subjects'
              ])
              ->take(10)
              ->where("slug",$slug)
              ->orderBy("id","DESC")
              ->get();

但是slug不在问题表中,它在课程表中。哦,对不起,我的mystake,如果你想在相关模型中添加条件,你需要使用回调函数,我现在就编辑答案谢谢,但我也尝试过这个,它返回所有问题,如果问题有课程,那么这个条件添加到那里。这意味着我将得到所有问题,如果slug发现它返回course,则此条件仅适用于course,否则为null。然后我建议使用反向选项,如$course=course::with(['questions.users,'questions.subjects')->whereSlug($slug)……我也在考虑这个问题,但这意味着我也创建了与课程模型和主题中的所有表的关系?但slug不是问题表,它在课程表中。哦,对不起,我的mystake,如果你想向相关模型添加条件,你需要使用回调函数,我现在就编辑答案谢谢,但我也尝试过这个,它返回所有问题,如果问题有过程,那么这个where条件添加到那里。这意味着我将得到所有问题,如果slug发现它返回course,则此条件仅适用于course,否则为null。然后我建议使用反向选项,如$course=course::with(['questions.users,'questions.subjects')->whereSlug($slug)……我也在考虑这个问题,但这意味着我还创建了与课程模型和主题中所有表的关系?