AdminPostController.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Models\Post;
  6. use App\Models\BlogCategory;
  7. class AdminPostController extends Controller
  8. {
  9. public function index()
  10. {
  11. $posts = Post::with('blog_category')->get();
  12. return view('admin.post.index',compact('posts'));
  13. }
  14. public function create()
  15. {
  16. $categories = BlogCategory::get();
  17. return view('admin.post.create', compact('categories'));
  18. }
  19. public function create_submit(Request $request)
  20. {
  21. $request->validate([
  22. 'title' => 'required',
  23. 'slug' => 'required|alpha_dash|unique:posts',
  24. 'description' => 'required',
  25. 'short_description' => 'required',
  26. 'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
  27. ]);
  28. $final_name = 'post_'.time().'.'.$request->photo->extension();
  29. $request->photo->move(public_path('uploads'), $final_name);
  30. $obj = new Post();
  31. $obj->blog_category_id = $request->blog_category_id;
  32. $obj->title = $request->title;
  33. $obj->slug = $request->slug;
  34. $obj->description = $request->description;
  35. $obj->short_description = $request->short_description;
  36. $obj->photo = $final_name;
  37. $obj->save();
  38. return redirect()->route('admin_post_index')->with('success','Post is Created Successfully');
  39. }
  40. public function edit($id)
  41. {
  42. $categories = BlogCategory::get();
  43. $post = Post::where('id',$id)->first();
  44. return view('admin.post.edit',compact('post', 'categories'));
  45. }
  46. public function edit_submit(Request $request, $id)
  47. {
  48. $obj = Post::where('id',$id)->first();
  49. $request->validate([
  50. 'title' => 'required',
  51. 'slug' => 'required|alpha_dash|unique:posts,slug,'.$id,
  52. 'description' => 'required',
  53. 'short_description' => 'required',
  54. ]);
  55. if($request->hasFile('photo'))
  56. {
  57. $request->validate([
  58. 'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
  59. ]);
  60. unlink(public_path('uploads/'.$obj->photo));
  61. $final_name = 'post_'.time().'.'.$request->photo->extension();
  62. $request->photo->move(public_path('uploads'), $final_name);
  63. $obj->photo = $final_name;
  64. }
  65. $obj->blog_category_id = $request->blog_category_id;
  66. $obj->title = $request->title;
  67. $obj->slug = $request->slug;
  68. $obj->description = $request->description;
  69. $obj->short_description = $request->short_description;
  70. $obj->save();
  71. return redirect()->route('admin_post_index')->with('success','Post is Updated Successfully');
  72. }
  73. public function delete($id)
  74. {
  75. $obj = Post::where('id',$id)->first();
  76. unlink(public_path('uploads/'.$obj->photo));
  77. $obj->delete();
  78. return redirect()->route('admin_post_index')->with('success','Post is Deleted Successfully');
  79. }
  80. }