我找不到为什么不起作用。
在我的课程模型中,我定义了关系:
class Course extends Model {
public function courseDates() {
return $this->hasMany(CourseDate::class, 'course_id');
}
}
在我的CourseDate模型中:
class CourseDate extends Model {
public function course() {
return $this->belongsTo(Course::class);
}
}
当我尝试从Course访问CourseDates时,我总是会得到null,但是当我从CourseDate访问Course时,它将起作用并且我会看到所有数据:
var_dump(CourseDate::where('id', 1)->first()->course->name); => output: "Course 1"
var_dump(Course::where('id', 1)->first()->courseDate); => output: null
当我尝试另一门课程(例如ID 2)时,奇怪的是它起作用了。数据库中的数据绝对相同。有任何想法吗?
答案 0 :(得分:0)
您应该添加CourseDate::class
之类的类,而不是像下面这样添加
class Course extends Model {
public function courseDates() {
return $this->hasMany('App\CourseDate', 'course_id');
}
}
在您的CourseDate
模型中
class CourseDate extends Model {
public function course() {
return $this->belongsTo('App\Course');
}
}
并且您用于Course
模型的关系方法是courseDates
,因此您应该像下面这样使用它
var_dump(Course::where('id', 1)->first()->courseDates);