Laravel 6

problème affichage image produit

Avatar de FlorentStoecklin
FlorentStoecklin

Bonjour à tous j'essaye d'afficher mes images dans mon carte mais sans succès j'utilise le bundle darryldecode si quelqu'un aurait une idée merci beaucoup.

Lien capture écran: https://zupimages.net/viewer.php?id=20/30/8jmd.png https://zupimages.net/viewer.php?id=20/30/yu5o.png

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

La vue que tu as envoyé semble ne pas exactement correspondre à ta capture ($720.00 au lieu de $2160.00 par exemple). On peut donc supposer qu'il y a eu des modifs entre temps... Soyons précis.

Sinon, deux choses:

  • As-tu des erreurs en console en front ?
  • As-tu essayé de fait un {{ dd($products) }} dans ta vue pour vérifier le contenu ?
Avatar de FlorentStoecklin
FlorentStoecklin

Bonjour, merci de votre réponse si en faite c'est que j'avais pas fait une grande capture https://zupimages.net/viewer.php?id=20/30/uyar.png.

j'ai aussi fais le {{ dd($products) }} mais sans succès ...https://zupimages.net/viewer.php?id=20/30/517w.png https://zupimages.net/viewer.php?id=20/30/q018.png Je suis largué..

Avatar de CinquièmeDimension
CinquièmeDimension

Rien ne se passe quand tu fait le dd ? Dans ce cas, je pense que la réponse est simple: $product est vide. Fait ton {{ dd($product) }} avant ton @if(!empty($product)... et tu tombera probablement sur un tableau vide

Avatar de FlorentStoecklin
FlorentStoecklin

J'obtiens cette erreur en faisant ceci {{ dd($product) }} ErrorException Undefined variable: product (View: C:\wamp64\www\jeffCommerce\resources\views\cart.blade.php) http://localhost:8000/cart

Avatar de CinquièmeDimension
CinquièmeDimension

Il faut un s a products {{ dd($products) }}

Avatar de FlorentStoecklin
FlorentStoecklin

J'ai aussi essayé mais sans succès ErrorException Undefined variable: products (View: C:\wamp64\www\jeffCommerce\resources\views\cart.blade.php) http://localhost:8000/cart

Avatar de CinquièmeDimension
CinquièmeDimension

Ben tu as trouvé ton erreur: la variable products n'existe pas. Donc il ne risque pas de t'afficher des infos sur une variable qui n'existe pas... C'est donc au niveau du controller qu'il te faut te tourner

Avatar de FlorentStoecklin
FlorentStoecklin

dans mon controller j'ai bien pourtant

public function home() { $products = Product::all(); return view('home', [ 'products' => $products ]); }

Avatar de CinquièmeDimension
CinquièmeDimension

Oui mais la fonction que tu montre est pour la vue home, or tu es dans la vue cart donc ce n'est pas la même fonction. Quelle est la fonction du controller qui envoie la vue cart ?

Ps: quand tu poste un code, essaie de le mettre en forme avec l'éditeur du forum (tu surligne et clic sur le bouton </>)

Avatar de FlorentStoecklin
FlorentStoecklin

Celle-ci alors? Merci pour l'info du </>

https://zupimages.net/viewer.php?id=20/30/ex6h.png

Avatar de CinquièmeDimension
CinquièmeDimension

C'est normal, tu ne retourne rien du tout. (A moins que tu ait fait un masterComposer pour passer ton cart à toutes les vues.) Je ne sais pas comment son construites tes tables mais il faudrait au moins retourner le contenu du cart et peut-être les infos des produits associés. D'après la doc, peut-être qu'un Cart::getContent(); afficherait le contenu du cart. Je vois que tu as essayé un dd(Cart:content());

Essaye dd(Cart::getContent()); dans ta fonction index(), tu verra peut-être le contenu de ton cart. Tu saura donc si tu as toutes les infos ou s'il faut aussi aller chercher les produits à part.

Avatar de FlorentStoecklin
FlorentStoecklin

Oui merci j'avais déjà essayé ceci dd(Cart::getContent()); ErrorException Non-static method Darryldecode\Cart\Cart::getContent() should not be called statically Avec le Cart::getContent(); je récupère des infos https://zupimages.net/viewer.php?id=20/30/fmnq.png

https://zupimages.net/viewer.php?id=20/30/x1ct.png

Encore merci pour votre aide

Avatar de CinquièmeDimension
CinquièmeDimension

Essaye de mettre un \ pour voir. Donc dd(\Cart::getContent()); dans la fonction index() de ton controller. Ca devrait endiguer l'erreur non-static method

Avatar de FlorentStoecklin
FlorentStoecklin

Yes merci je récupère bien un tableau et maintenant comment afficher mes photos.

Darryldecode\Cart\CartCollection {#1588 ▼
  #items: array:1 [▼
    1 => Darryldecode\Cart\ItemCollection {#1579 ▼
      #config: null
      #items: array:7 [▼
        "id" => "1"
        "name" => "Mangue / Passion"
        "price" => 100.99
        "quantity" => 12
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1584 ▶}
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
  ]
}
Avatar de CinquièmeDimension
CinquièmeDimension

Ben là:

  • soit pour chaque produit du cart, tu vas chercher l'image
  • soit, plus dur mais bien mieux, tu modifie la methode Cart::add pour pouvoir ajouter l'image dans ton store()

Déplie d'abbord le "attribules" de ton dd pour voir si l'image ne s'y cache pas au cas où...

Avatar de FlorentStoecklin
FlorentStoecklin

Voila j'ai tout déplié

Darryldecode\Cart\CartCollection {#1590 ▼
  #items: array:2 [▼
    1 => Darryldecode\Cart\ItemCollection {#1579 ▼
      #config: null
      #items: array:7 [▼
        "id" => "1"
        "name" => "Mangue / Passion"
        "price" => 100.99
        "quantity" => 12
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1584 ▼
          #items: []
        }
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
    3 => Darryldecode\Cart\ItemCollection {#1585 ▼
      #config: null
      #items: array:7 [▼
        "id" => "3"
        "name" => "Mangue / Coco"
        "price" => 100.99
        "quantity" => "6"
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1586 ▼
          #items: []
        }
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
  ]
}

et ma public function dans mon CartController

public function store(Request $request)
    {
        \Cart::add($request->id, $request->name, 100.99, $request->price)->associate('App\Product');

        return redirect()->route('cart.index')->with('success', 'Produit ajouté au panier !');
    }
Avatar de CinquièmeDimension
CinquièmeDimension

Le attribule est justement prévupour rajouter ce que tu veux apparement. Du coup essaye de modifier ton store comme ça:

public function store(Request $request)
{
    $attributes = [
        'image' => $request->image
    ];
    \Cart::add($request->id, $request->name, 100.99, $request->price, $attributes)->associate('App\Product');

    return redirect()->route('cart.index')->with('success', 'Produit ajouté au panier !');
}

Je suis parti du principe que l'image est dispo avec $request->image mais si ce n'est pas le cas, il faut adapter. Une fois que tu as modifié ta fonction store(), il te faudra ajouter un nouveau produit au panier et reesayer le dd(\Cart::getContent()); pour voir si l'image est enregistrée dans les attributs.

Je fais ça à l'aveugle et je n'ai jamais fait d'appli avec un panier donc je ne promet rien...

Avatar de FlorentStoecklin
FlorentStoecklin

Merci je récupère bien mes produits mais pour afficher la photos toujours pas

Darryldecode\Cart\CartCollection {#1592 ▼
  #items: array:3 [▼
    1 => Darryldecode\Cart\ItemCollection {#1579 ▼
      #config: null
      #items: array:7 [▼
        "id" => "1"
        "name" => "Mangue / Passion"
        "price" => 100.99
        "quantity" => 12
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1584 ▶}
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
    3 => Darryldecode\Cart\ItemCollection {#1585 ▼
      #config: null
      #items: array:7 [▼
        "id" => "3"
        "name" => "Mangue / Coco"
        "price" => 100.99
        "quantity" => "6"
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1586 ▶}
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
    7 => Darryldecode\Cart\ItemCollection {#1587 ▼
      #config: null
      #items: array:7 [▼
        "id" => "7"
        "name" => "Mangue / Orange"
        "price" => 100.99
        "quantity" => "6"
        "attributes" => Darryldecode\Cart\ItemAttributeCollection {#1588 ▶}
        "conditions" => []
        "associatedModel" => "App\Product"
      ]
    }
  ]
}
Avatar de CinquièmeDimension
CinquièmeDimension

Il faut déplier les attributes pour voir s'il y a la photo dans le dernier produit que tu as ajouté

Vous ne pouvez pas répondre à ce sujet.