CommentController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Comment;
  5. use App\Models\Moderate;
  6. use App\Models\User;
  7. use App\Events\ValidateComment;
  8. use App\Events\ModerateComment;
  9. class CommentController extends Controller
  10. {
  11. // Переход по страницам
  12. public function view_update(Request $request){
  13. return view('comments.update', [ 'comment' => Comment::where('id', $request->id)->with('post')->with('user')->get()[0],
  14. 'admins' => User::where('role', 'admin')->orderBy("name")->get(), 'moderates' => Moderate::allComment($request->id) ]);
  15. }
  16. // Взаимодействия со страницами
  17. function insert(Request $request) { // Добавить
  18. event(new ValidateComment($request));
  19. $comment = new Comment;
  20. $comment->post_id = $request->input("id");
  21. $comment->user_id = $request->input("user");
  22. $comment->text = $request->input("text");
  23. $comment->save();
  24. return back();
  25. }
  26. function update(Request $request){ // Изменить
  27. event(new ValidateComment($request));
  28. $comment = Comment::find($request->input("id"));
  29. $comment->text = $request->input("text");
  30. $comment->save();
  31. event(new ModerateComment($request));
  32. return back();
  33. }
  34. function delete_by_id($id){
  35. Moderate::where('post_type', "App\Models\Comment")->where('post_id', $id)->delete();
  36. Comment::where('id', $id)->delete();
  37. return back();
  38. }
  39. function delete(Request $request){
  40. Moderate::where('post_type', "App\Models\Comment")->where('post_id', $request->id)->delete();
  41. Comment::where('id', $request->id)->delete();
  42. return back();
  43. }
  44. }