【问题标题】:Laravel Multiple Relations Query with Custom Conditions具有自定义条件的 Laravel 多关系查询
【发布时间】:2021-08-19 14:11:03
【问题描述】:

上下文

  • Person belongsToMany Courses
  • 课程属于课程类型

有些课程有先决条件,例如要学习课程 C,您必须先参加课程 A 和 B。

基本上条件是这样的:

IF (courses_prerequisites)
AND
IF(course_not_attended)

课程有一个 course_slug 有助于识别它们。

我成功地创建了一个查询来获取参加过课程的学生列表,但我无法找到检索满足某些先决条件但尚未参加课程的学生的查询。 p>

这是我建立的查询:

 return Person::whereHas('studentCourses', function($query){
      $query->whereHas('courseType', function ($sub_query) {
         $sub_query->where('id_course', $this->course_slug);
      });
  })->get();

非常感谢任何帮助:)

【问题讨论】:

    标签: mysql laravel eloquent


    【解决方案1】:

    我找到了这个解决方案:

    Person::whereHas('studentCourses.course_type', function ($query) {
            $query->where('id_course', $this->getPrerequisite());
        })->whereDoesntHave('studentCourses.course_type', function ($query) {
            $query->where('id_course', $this->course_type_slug); 
        })->get();
    

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 2023-02-13
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多