首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel/Php -使用雄辩的ORM调用嵌套模型

Laravel/Php -使用雄辩的ORM调用嵌套模型
EN

Stack Overflow用户
提问于 2021-08-14 03:54:40
回答 1查看 39关注 0票数 1

假设如下,我有一个:

课程模式:

  • belongsToMany用户Model
  • belongsToMany考试模型
    • HasMany试题模型
      • HasMany应答Model

课程考试成绩表

  • id
  • user_id
  • course_id
  • exam_id
  • question_id
  • answer_id

是否有更好的方法来获得结果而不必直接查询表?

我目前正在做以下工作:

代码语言:javascript
运行
复制
public function displayResult($user, $course, $exam) {
    $course_exam_results = \App\CourseExamResult::where([
        'user_id' => $user->id,
        'course_id' => $course->id,
        'exam_id' => $exam->id
    ])
    ->get();

   dd($course_exam_results);
}

会喜欢做一些像auth()->user()->course(??)->exam(??)->results这样更好的事情。我想使用laravel hasManyThrough,但我认为我不能让它在这种情况下工作,因为它只接受2种模式,而我可能不得不一次调用3-5模型。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2021-08-14 04:06:49

如果您想在Laravel雄辩语中使用多个where,您必须如下所示:

  • 你必须给where()一个数组。
  • 每个搜索都有两个参数,所以它是数组中的数组。

代码语言:javascript
运行
复制
$course_exam_results = \App\CourseExamResult::where([
    ['user_id', auth()->user()->id],
    ['course_id', $course->id],
    ['exam_id', $exam->id]
])
->firstOrFail();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68780193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档