我有四个表,分别命名为practice
、section
、book
和grade
,其流程是每一个练习都与补丁的一个章节相关一本书,每一个章节对应一本补丁书,每一本书对应一个学习水平。
例如,解维恩图的练习是九年级数学书第一章的一部分。
我想有一个查询,有与特定年级相关的做法。
我自己在Laravel上运行了这个查询:
$grade = 9; //Example
$practice = DB::table('practices')
->select('practices.id')
->where('teacher_id', $teacher->id)
->where('code', $practiceCode)
->join('sections', 'practices.section_id', '=', 'sections.id')
->join('books', 'sections.book_id', '=', 'books.id')
->where('books.grade_id', $grade)
->first();
但是我没有通过这个查询得到一个对象,当我想把它发送到blade视图时,我必须把它转换成一个对象。
$practice_id = $practice->id ;
$practiceObject = Practice::find($practice_id);
但是如果可能的话我想用模型来实现这个查询。谢谢你的帮助。
1条答案
按热度按时间6vl6ewon1#
我会这样做:
首先在模型中设置关系,然后我会尝试使用'with'和/或'whereHas'方法构建一些东西,如下所示:
如果您不知道如何操作,请查看here in the docs
希望对你有帮助!😉