public function show($code) { $course = Cache::tags('course')->remember("info-{$code}", Course::MINUTES_PER_MONTH, function () use($code) { return Course::with(['semester', 'professors'])->where('code', $code)->orderBy('semester_id', 'desc')->get(); }); return $this->setData($course)->responseOk(); }
/** * Run the database seeds. * * @return void */ public function run() { $users = User::all(); Course::all()->each(function (Course $course) use($users) { $course->exams()->save(factory(Attachment::class)->make(['user_id' => $users->random()->getAttribute('id')])); }); }
public function waterfall(Request $request) { $key = 'comment-waterfall-' . $request->input('id', 0); $comments = Cache::tags('course')->remember($key, 5, function () use($request) { Course::setPrimaryKey('code'); $query = Comment::with(['commentable'])->where('commentable_type', 'course')->whereNull('comment_id')->latest()->take(5); if ($request->has('id')) { $query = $query->where('id', '<', $request->input('id')); } return $query->get(); }); return $this->setData($comments)->responseOk(); }
/** * Run the database seeds. * * @return void */ public function run() { $users = User::all(); Course::all()->each(function (Course $course) use($users) { $course->comments()->saveMany(factory(Comment::class, mt_rand(2, 5))->make(['user_id' => $users->random()->getAttribute('id')]))->each(function (Comment $comment) use($users) { // 評論的評論 $comment->comments()->save(factory(Comment::class)->make(['user_id' => $users->random()->getAttribute('id')])); // 評論按讚 $likes = mt_rand(2, 5); $comment->likes()->saveMany(factory(Like::class, $likes)->make(['user_id' => $users->random()->getAttribute('id')])); $comment->update(['likes' => $likes]); }); }); }
/** * 更新課程. * * @param Course $model * @param array $course * @return void */ protected function updateCourse($model, $course) { $model->professors()->sync(array_merge($model->getRelation('professors')->pluck('id')->toArray(), $this->professors($course['professors'])->pluck('id')->toArray())); $model = $model->fresh(['professors']); foreach ($model->getRelation('professors') as $professor) { $pivot = $professor->getRelation('pivot'); if (empty($pivot->getAttribute('class'))) { $pivot->update(['class' => $course['class'], 'credit' => $course['credit']]); } } }