with('user')->withCount('answers')->where('status', 1); $keyword = $request->input('keyword'); if ($keyword) { $keyword = trim($keyword); $questions = $questions->where('title', 'like', '%'.$keyword.'%'); } $questions = $questions->orderBy('id', 'desc')->paginate(); return $this->success('ok', $questions); } /** * 提问题 */ public function submitQuestion(Request $request, SoulQuestion $question_obj) { //检测字段 $title = $request->input('title'); if (empty($title)) { return $this->failure('请输入问题标题'); } $content = $request->input('content'); if (empty($content)) { return $this->failure('请输入问题内容'); } //创建问题 $question = $question_obj->create([ 'user_id'=> auth()->id(), 'title'=>$title, 'content'=>$content ]); //提交到心灵密友 SubmitSoulQuestion::dispatch($question)->onQueue('love'); return $this->success('ok'); } /** * 问题详情 */ public function question(Request $request, SoulQuestion $soul_question) { $soul_question->user; //添加点击量 $soul_question->increment('click_num', 1); //回答列表 $answers = $soul_question->answers()->with('user')->orderBy('type', 'desc')->orderBy('id', 'desc')->paginate(); return $this->success('ok', compact('answers', 'soul_question')); } /** * 我的问答 */ public function userQuestions(Request $request, SoulQuestion $soul_question) { $user = auth()->user(); $questions = $soul_question->with('user')->withCount('answers')->where('user_id', $user->id); $keyword = $request->input('keyword'); if ($keyword) { $keyword = trim($keyword); $questions = $questions->where('title', 'like', '%'.$keyword.'%'); } $questions = $questions->orderBy('id', 'desc')->paginate(); return $this->success('ok', $questions); } /** * 回复 */ public function replyQuestion(Request $request, SoulQuestion $soul_question, SoulAnswer $soul_answer) { $user = auth()->user(); $answer = $request->input('answer'); if (empty($answer)) { return $this->failure('请输入回复内容'); } $data = [ 'user_id'=>$user->id, 'question_id'=>$soul_question->id, 'answer'=>$answer, 'is_text'=>1, 'type'=>'USER', ]; $answer_obj = $soul_answer->create($data); return $this->success('ok', $answer_obj); } }