0

我找不到为什么它不起作用。

在我的课程模型中,我定义了关系:

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)尝试它时,奇怪的是它可以工作。数据库中的数据是完全一样的。有任何想法吗?

4

1 回答 1

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);

文档:https ://laravel.com/docs/5.7/eloquent-relationships

于 2018-11-29T09:21:24.383 回答