Laravel关联返回null:查询用户已购课程时course关联无数据问题
问题原因
你的关联定义参数填写错误,导致Laravel无法正确匹配关联数据。
belongsTo关联的第二个参数是当前模型(PurchasedCourse)中存储的、指向关联模型(Course)的外键字段名,你现在填的是id,相当于用PurchasedCourse自己的主键ID去匹配Course表的主键ID,不符合实际关联逻辑,自然查询不到结果返回null。
修复方案
- 先确认
purchased_courses表中存储课程ID的外键字段名,常规命名为course_id,如果是自定义命名请对应替换。 - 修改PurchasedCourse模型中的
course关联方法:
public function course() { // 外键名为course_id的情况可以省略参数,Laravel会自动识别 return $this->belongsTo(Course::class); // 如果你的外键是自定义名称,比如是c_id,就写为 // return $this->belongsTo(Course::class, 'c_id'); }
内容的提问来源于stack exchange,提问作者Reza Khodarahmi
相关产品推荐
相关产品推荐

