laravel8 多对多模型关联(有中间关系表)

简单用学生和课程来说,一位学生多个课程,一个课程多位学生,建一个中间关系表,只存储学生id和课程id。

1、学生模型

public function Package()
    {
        return $this->belongsToMany(DancePackage::class,'child_course','child_id','package_id');
    }

//参数对应的分别是:
//关联的模型
//中间关系表名称
//外键
//关联表的主键

2、课程模型

 public function Child()
    {
        return $this->belongsToMany(DanceChild::class,'child_course','package_id','child_id');
    }

3、查询某一个学生的课程

先根据给的学生id查学生表,拿到该学生数据

 $child = $this->childDao->getChildCourse($childId);//当前孩子

再根据课程id拿到相关数据

  $package = $this->courseDao->getChildCourse($child);//当前课程套餐

这里的$package就是最后该学生关联的课程数据

array:2 [▼
  0 => array:11 [▼
    "id" => 1
    "course_name" => "幼儿舞蹈启蒙"
    "class_name" => "金牌启蒙1班"
    "class_room" => "1001A"
    "start_time" => "2021-10-10 12:01:55"
    "class_hour" => 24
    "course_img" => "http://cdn.xxxxx.com/16360087141290.png"
    "created_at" => "2021-10-03 12:02:10"
    "updated_at" => null
    "deleted_at" => null
    "pivot" => array:2 [▼
      "child_id" => "1"
      "package_id" => 1
    ]
]

上一篇:面试必问的时间复杂度到底怎么算


下一篇:laravel8 jwt接口安全