public function getComments() { return $this->hasMany(NewsComment::className(), ['news_id' => 'id']); }
public function createComment(Request $request, $newsId) { $clientId = Authorizer::getClientId(); $operatorId = (int) Authorizer::getResourceOwnerId(); $news = News::findOrFail($newsId); $data = $request->all(); $validator = Validator::make($data, ['content' => 'required']); if ($validator->fails() === true) { return response()->json(['error' => $validator->errors()], 400); } $data['news_id'] = $newsId; $data['app_id'] = $clientId; $data['author_id'] = $operatorId; $comment = new NewsComment($data); $comment->save(); $news = $this->unfoldNewsInfo($news); return response()->json($news, 201); }
public function create($slug, News $news, Request $request) { /*------------------------------------------------------------- like newsComments ----------------------------------------------------------------*/ if (isset($_POST['Like'])) { $comment_id = \Input::get('comment_id'); // Записуєм id коментарія $selectLike = \DB::table('newsComment')->SELECT('Like', 'address')->WHERE('id', '=', $comment_id)->first(); $increaseNumber = $selectLike->Like + 1; // Записуєм id коментарія $selectAddress = $selectLike->address; // Записуєм в зміну ip яка знаходиться в базі даних $userAddress = $_SERVER['REMOTE_ADDR']; // Записуєм ip користувача if ($selectAddress == $userAddress) { // Перевіряєм ip адресу щоб немож було голосувати 2 рази return $this->cart($slug, $news, $request)->with('textErrorIp', trans('translation.З_вашої_ip_уже_голосували')); } else { \DB::table('newsComment')->WHERE('id', '=', $comment_id)->UPDATE(['like' => $increaseNumber, 'address' => $userAddress]); return $this->cart($slug, $news, $request)->with('textLike', trans('translation.Вам_сподобалось')); } } elseif (isset($_POST['UnLike'])) { $comment_id = \Input::get('comment_id'); // Записуєм id коментарія $selectLike = \DB::table('newsComment')->SELECT('UnLike', 'address')->WHERE('id', '=', $comment_id)->first(); $increaseNumber = $selectLike->UnLike + 1; // Віднімаєм id коментарія $selectAddress = $selectLike->address; // Записуєм в зміну ip яка знаходиться в базі даних $userAddress = $_SERVER['REMOTE_ADDR']; // Записуєм ip користувача if ($selectAddress == $userAddress) { // Перевіряєм ip адресу щоб немож було голосувати 2 рази return $this->cart($slug, $news, $request)->with('textErrorIp', trans('translation.З_вашої_ip_уже_голосували')); } else { \DB::table('newsComment')->WHERE('id', '=', $comment_id)->UPDATE(['unlike' => $increaseNumber, 'address' => $userAddress]); return $this->cart($slug, $news, $request)->with('textUnLike', trans('translation.Вам_не_сподобалось')); } } /* ------------------------------------------------------------- like newsComments ----------------------------------------------------------------*/ /* ------------------------------------------------------------- add ajax comments ----------------------------------------------------------------*/ if ($request->has('body')) { /* Витягую з форми body для перевірки чи це форма є додати коментар */ $validator = NewsComment::validate(\Input::all()); if ($validator->fails()) { return Response::json(['success' => false, 'errors' => $validator->errors()->toArray()]); } else { $newsComment = new NewsComment(); $newsComment->name = $request->get('name'); $newsComment->email = $request->get('email'); $newsComment->body = $request->get('body'); $newsComment->news_id = $request->get('newsId'); $newsComment->date = date("Y-m-d h:i:s"); $newsComment->save(); return Response::json(['success' => trans('translation.Ваш_коментар_успішно_добавлений')]); } } /* ------------------------------------------------------------- add ajax comments ---------------------------------------------------------------- */ /* ------------------------------------------------------------- send errors news page ---------------------------------------------------------------- */ $validatorError = NewsCommentError::validate(\Input::all()); if ($validatorError->fails()) { return Response::json(['success' => false, 'errors' => $validatorError->errors()->toArray()]); } else { $newsCommentError = new NewsCommentError(); $newsCommentError->news_id = $request->get('newsId'); $newsCommentError->body = $request->get('bodyError'); $newsCommentError->save(); return Response::json(['success' => trans('translation.Дякуєм_вам_за_допомогу_ми_виправимо_помилку_в_найближчий_час')]); } /* ------------------------------------------------------------- send errors news page ---------------------------------------------------------------- */ }