with(['detail.episode']) ->orderByDesc('id')->get(); foreach ($lists as $list){ $count = $list->detail->episode->withCount('lists')->first()->toArray(); $list->detail->episode->total = $count['lists_count']; $list->detail->episode->status_text = $list->detail->episode->status; } return $this->success($lists); } public function recent() { $info = UserWatchRecord::filterUser() ->with(['detail.episode']) ->orderByDesc('updated_at') ->first(); if($info){ $count = $info->detail->episode->withCount('lists')->first()->toArray(); $info->detail->episode->total = $count['lists_count']; $info->detail->episode->status_text = $info->detail->episode->status; } return $this->success($info); } public function watched() { $id = request()->input('id'); $listId = request()->input('list_id'); $res = UserWatchRecord::filterUser()->where('episode_id',$id)->first(); if($res){ $res->list_id = $listId; }else{ $res = new UserWatchRecord(); $res->user_id = \user()->id; $res->episode_id = $id; } $res->list_id = $listId; return $this->success($res->save()); } }