ProduitController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. $categories = Categorie::where('etat','1')->get();
  23. $contacts = Contact::where('etat','1')->get();
  24. return view('frontend.produits.produit',compact('produits','categories','contacts','promotions'));
  25. }
  26. public function search(){
  27. $categories = Categorie::where('etat','1')->get();
  28. $contacts = Contact::where('etat','1')->get();
  29. $q = request()->input('q');
  30. $produits = Produit::where('nom','like',"%$q%")
  31. ->where('etat',true)
  32. ->orwhere('description','like',"%$q%")
  33. ->paginate(6);
  34. return view('frontend.produits.search' , compact('produits','categories','contacts'));
  35. }
  36. public function show ($id){
  37. $produit = Produit::find($id);
  38. $contacts = Contact::where('etat','1')->get();
  39. $promotions = Promotion::where('produit_id',$id)->get();
  40. $categories = Categorie::where('etat','1')->get();
  41. $diapos=Media::where('produit_id','=',$produit->id)->get();
  42. if ($produit->document != null) {
  43. $size = Storage::size('document/'.$produit->document);
  44. $file_size = $size * 0.0009765625;
  45. $sizeFile = number_format($file_size,0);
  46. $infoPath = pathinfo(public_path('document/'.$produit->document));
  47. $extension = $infoPath['extension'];
  48. return view('frontend.produits.details',compact('produit','diapos','extension','sizeFile','contacts','categories','promotions'));
  49. }
  50. return view('frontend.produits.details',compact('produit','diapos','contacts','categories','promotions'));
  51. }
  52. }