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,package,模型,关联,class,课程,child,学生,id 来源: https://blog.csdn.net/Lorientasn/article/details/121300111