input('sort_type', '1'); $per_page = $request->input('per_page', 10); $user = auth('api')->user(); $query = UserTalk::with(['praise', 'user']); if($sort_type == 2){ $query->orderBy('praise_num', 'desc'); } $list = $query->where('is_show', 1)->orderBy('created_at', 'desc')->paginate($per_page); // dd($list); return UserTalksResource::collection($list)->additional(['code' => Response::HTTP_OK, 'message' => '']); } /** * 发表言论 */ public function post(Request $request){ $content = $request->input('content'); //检查是否有头像昵称 $user = auth('api')->user(); //检测是否绑定昵称头像 if(!$user->avatar || !$user->nick_name){ return $this->error('未绑定昵称头像', 501); } $len = mb_strlen($content); if($len <= 0 || $len > 200){ return $this->error('留言长度应不长于200'); } UserTalk::create([ 'user_id' => $user->id, 'talk_content' => $content, 'is_show' => 1 ]); return $this->success('发布成功!'); } /** * 点赞, 取消点赞 */ public function clickPraise($talk_id){ $user = auth('api')->user(); $talk = UserTalk::findOrFail($talk_id); if(!$talk){ return $this->error('数据不存在', 404); } try { DB::beginTransaction(); if(UserPraiseTalk::where(['user_id'=>$user->id, 'talk_id'=>$talk_id])->exists()){//已点赞,则取消 UserPraiseTalk::where(['user_id'=>$user->id, 'talk_id'=>$talk_id])->delete(); $talk->decrement('praise_num'); $talk_praise = false; }else{ UserPraiseTalk::create([ 'user_id'=>$user->id, 'talk_id'=>$talk_id, ]); $talk->increment('praise_num'); $talk_praise = true; } DB::commit(); } catch(\Throwable $th){ return $this->error('操作失败:'.$th->getMessage()); } return $this->success(['praise_status'=>$talk_praise],'操作成功'); } }