CategorieController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace App\Http\Controllers\backend;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Models\Categorie;
  6. use App\Models\CategorieProduit;
  7. use Illuminate\Support\Facades\Storage;
  8. use Illuminate\Support\Facades\Redirect;
  9. use App\Models\temporaryFile;
  10. class CategorieController extends Controller
  11. {
  12. public function __construct(){
  13. return $this->middleware(['auth','verified']);
  14. }
  15. public function Index(){
  16. $articles = Categorie::paginate(5);
  17. return view("backend.category.index",compact('articles'));
  18. }
  19. public function create(){
  20. return view('backend.category.add');
  21. }
  22. public function store( Request $request){
  23. request()->validate([
  24. 'nom' => 'required',
  25. 'image' => 'required',
  26. ]);
  27. $tmp_file = temporaryFile::where('folder',$request->image)->first();
  28. if($tmp_file){
  29. Storage::copy('image/tmp/'.$tmp_file->folder.'/'.$tmp_file->file,'image/'.$tmp_file->folder.'/'.$tmp_file->file);
  30. Categorie::create(
  31. [
  32. 'nom' => $request->nom,
  33. 'image' => $tmp_file->folder . '/' . $tmp_file->file,
  34. ],
  35. );
  36. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  37. $tmp_file->delete();
  38. return redirect()->route('categories');
  39. }
  40. }
  41. public function show($id){
  42. $article=Categorie::find($id);
  43. return view('backend.category.show',['article'=>$article]);
  44. }
  45. public function edit($id) {
  46. $article = Categorie::find($id);
  47. return view('backend.category.edit',['article'=>$article]);
  48. }
  49. public function update(Request $request, $id) {
  50. request()->validate([
  51. 'nom' => 'required',
  52. 'image' => 'required',
  53. ]);
  54. $article = Categorie::find($id);
  55. $article->nom = $request->input('nom');
  56. $tmp_file = temporaryFile::where('folder',$request->image)->first();
  57. if($tmp_file){
  58. Storage::copy('image/tmp/'.$tmp_file->folder.'/'.$tmp_file->file,'image/'.$tmp_file->folder.'/'.$tmp_file->file);
  59. $article->update([
  60. "image" => $tmp_file->folder . '/' . $tmp_file->file
  61. ]);
  62. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  63. $tmp_file->delete();
  64. }
  65. $article->created_at = \Carbon\Carbon::now();
  66. $article->save();
  67. return redirect ()->route('categories')->with('success','Modifié');
  68. }
  69. public function destroy(Request $request, $id){
  70. // $article = Categorie::find($id);
  71. // $article->delete();
  72. // Produit::whereCategoryId($id)->update(['category_id' => null]);
  73. $products = Categorie::find($id)->produits;
  74. if($products->isNotEmpty()){
  75. return redirect ()->route('categories')
  76. ->with('message', 'Produit existe dans cette categorie');
  77. }
  78. else{
  79. $category= Categorie::find($id);
  80. $category->delete();
  81. return Redirect::to('/idara/categories')
  82. ->with('message', 'Categorie supprimée');
  83. }
  84. return back();
  85. }
  86. public function changeStatus(Request $request)
  87. {
  88. $article = Categorie::find($request->Id);
  89. $article->etat = $request->etat;
  90. $article->save();
  91. return response()->json(['success'=>'Status change successfully.']);
  92. }
  93. public function fileUpload(Request $request){
  94. if($request->hasfile('image')){
  95. $image = $request->file('image');
  96. $file = $image->getClientOriginalName();
  97. $folder = uniqid('post', 'true');
  98. $image->storeAs('image/tmp/' . $folder,$file);
  99. TemporaryFile::create([
  100. 'folder' => $folder,
  101. 'file'=> $file
  102. ]);
  103. return $folder;
  104. }
  105. return '';
  106. }
  107. public function deleteUpload(){
  108. $tmp_file = TemporaryFile::where('folder',request()->getContent())->first();
  109. if($tmp_file){
  110. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  111. $tmp_file->delete();
  112. return response('');
  113. }
  114. }
  115. }