ProduitController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers\frontend;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Produit;
  5. use App\Models\Categorie;
  6. use App\Models\Media;
  7. use App\Models\Contact;
  8. use App\Models\Promotion;
  9. use Illuminate\Support\Facades\Storage;
  10. use Illuminate\Http\Request;
  11. class ProduitController extends Controller
  12. {
  13. public function Index($categorieId = null){
  14. // dd( $categorieId);
  15. if($categorieId != null){
  16. $produits = Produit::whereRelation('categories', 'categorie_id' ,$categorieId)->paginate(6);
  17. }
  18. else{
  19. $produits = Produit::where('etat','1') ->paginate(6);
  20. }
  21. $promotions = Promotion::where('etat','1') ->paginate(6);
  22. $category = Categorie::find($categorieId);
  23. $categories = Categorie::where('etat','1')->get();
  24. $contacts = Contact::where('etat','1')->get();
  25. return view('frontend.produits.produit',compact('produits','categories','contacts','promotions','category'));
  26. }
  27. public function search(){
  28. $categories = Categorie::where('etat','1')->get();
  29. $contacts = Contact::where('etat','1')->get();
  30. $q = request()->input('q');
  31. $produits = Produit::where('nom','like',"%$q%")
  32. ->where('etat',true)
  33. ->orwhere('description','like',"%$q%")
  34. ->paginate(6);
  35. return view('frontend.produits.search' , compact('produits','categories','contacts'));
  36. }
  37. public function show ($id){
  38. $produit = Produit::find($id);
  39. $contacts = Contact::where('etat','1')->get();
  40. $promotions = Promotion::where('produit_id',$id)->get();
  41. $categories = Categorie::where('etat','1')->get();
  42. $diapos=Media::where('produit_id','=',$produit->id)->get();
  43. if ($produit->document != null) {
  44. $size = Storage::size('document/'.$produit->document);
  45. $file_size = $size * 0.0009765625;
  46. $sizeFile = number_format($file_size,0);
  47. $infoPath = pathinfo(public_path('document/'.$produit->document));
  48. $extension = $infoPath['extension'];
  49. return view('frontend.produits.details',compact('produit','diapos','extension','sizeFile','contacts','categories','promotions'));
  50. }
  51. return view('frontend.produits.details',compact('produit','diapos','contacts','categories','promotions'));
  52. }
  53. }