PostsController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Post;
  4. use Illuminate\Http\Request;
  5. class PostsController extends Controller
  6. {
  7. public function __construct()
  8. {
  9. $this->middleware('auth')
  10. ->except(['index', 'show']);
  11. }
  12. /**
  13. * Show the form for creating a new resource.
  14. *
  15. * @return \Illuminate\Http\Response
  16. */
  17. public function create()
  18. {
  19. return view('posts.create');
  20. }
  21. /**
  22. * Remove the specified resource from storage.
  23. *
  24. * @param int $id
  25. *
  26. * @return \Illuminate\Http\Response
  27. */
  28. public function destroy($id)
  29. {
  30. //
  31. }
  32. /**
  33. * Show the form for editing the specified resource.
  34. *
  35. * @param int $id
  36. *
  37. * @return \Illuminate\Http\Response
  38. */
  39. public function edit($id)
  40. {
  41. //
  42. }
  43. /**
  44. * Display a listing of the resource.
  45. *
  46. * @return \Illuminate\Http\Response
  47. */
  48. public function index()
  49. {
  50. // $posts = Post::orderBy('created_at', 'desc')->get();
  51. $posts = Post::latest()->get();
  52. return view('posts.index', compact('posts'));
  53. }
  54. public function show(Post $post)
  55. {
  56. return view('posts.show', compact('post'));
  57. }
  58. /**
  59. * Store a newly created resource in storage.
  60. *
  61. * - Create new post using the request data
  62. * - Save it to the database
  63. * - Redirect to the home page
  64. *
  65. * @param \Illuminate\Http\Request $request
  66. *
  67. * @return \Illuminate\Http\Response
  68. */
  69. public function store(Request $request)
  70. {
  71. // $post = new Post();
  72. // $post->title = $request->get('title');
  73. // $post->body = $request->get('body');
  74. // $post->save();
  75. $this->validate($request, [
  76. 'title' => 'required|min:10',
  77. 'body' => 'required',
  78. ]);
  79. auth()->user()->publish(new Post(request(['title', 'body'])));
  80. return redirect('/');
  81. }
  82. /**
  83. * Update the specified resource in storage.
  84. *
  85. * @param \Illuminate\Http\Request $request
  86. * @param int $id
  87. *
  88. * @return \Illuminate\Http\Response
  89. */
  90. public function update(Request $request, $id)
  91. {
  92. //
  93. }
  94. }