Php laravel在以下关系中添加条件
在index controller中,我不需要任何条件,所以数据可以通过所有关系模型非常清晰地检索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
$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)……我也在考虑这个问题,但这意味着我还创建了与课程模型和主题中所有表的关系?