hasMany(Video::class, 'course_chapter_id', 'id'); } public function course() { return $this->belongsTo(Course::class); } /** * 获取目录 * @param $id * @return array */ public static function byCourseIdGetDirectory($course_id) { $directory = []; $data = self::query()->where('course_id', $course_id)->where('status', ModelStatusEnum::OK)->orderByDesc('sort')->get(); foreach ($data as $d) { $directory[] = [ 'id' => $d['id'], 'title' => $d['title'], 'children' => $d->videos()->where('status', ModelStatusEnum::OK)->where('published_at', '<', Carbon::now()->toDateTimeString())->orderByDesc('sort')->get(['id', 'title', 'duration', 'short_description'])->append(['duration_text', "progress"]) ]; } return $directory; } }