Laravel 6

Insérer plusieurs image

Avatar de nezga
nezga

Bonjour à tous, Je me permets de vous écrire parce que je rencontre un petit problème, je développe actuellement un site e-commerce avec le framework laravel et je souhaite insérer les images des produits commander dans la table order (commandes), cependant lorsque le client commande un seul produit, tout fonctionne correctement, mais lorsqu'il commande deux produits ou plus, j'ai seulement l'image du dernier produit qui a été ajouté au panier (idem pour la réference). Je ne comprend pas trop pourquoi ... Voici le bout de code qui permet l'insertion des commandes dans ma table order :

$products = [];
$i = 1;

foreach (Cart::content() as $product) {
    $products['product_' . $i][] = $product->model->title_generale;
    $products['product_' . $i][] = $product->model->reference;
    $products['product_' . $i][] = $product->qty;
    $image = $product->model->image_generale;
    $reference = $product->model->reference;
    $i++;
}

$order->products = serialize($products);
$order->image_products = $image; 
$order->reference = $reference; 

Si quelqu'un pourrait m'aider ça serait sympathique ^^ Merci d'avance ^^

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Salut,

Tu as une variable $image que tu réaffectes pour chaque produit, logiquement il ne reste que l'image du dernier produit.

Posté il y a 1 mois
Avatar de nezga
nezga

ah d'accord, tu saurais comment je pourrais remédier à cela s'il te plait ?

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Tu peux faire un tableau comme pour les produits.

Posté il y a 1 mois
Avatar de nezga
nezga

j'ai essayé mais la commande ne passe même pas, ça me redirige vers ma page d'accueil sans effacer mon panier ni passer la commande Voici le code que j'ai testé :

        $products = [];
        $image = []; 
        $reference = []; 
        $i = 1;

        foreach (Cart::content() as $product) {
            $products['product_' . $i][] = $product->model->title_generale;
            $products['product_' . $i][] = $product->model->reference;
            $products['product_' . $i][] = $product->qty;
            $image['product_n°' . $i][] = $product->model->image_generale;
            $reference['product_n°' . $i][] = $product->model->reference;
            $i++;
        }

        $order->products = serialize($products);
        $order->image_products = $image; 
        $order->reference = $reference; 

Si t'aurais la solution, ça serait vraiment cool ^^

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Tes colonnes image_products et reference sont de quel type dans la table ? Je suppose que ta colonne products est en JSON. Comment tu t'y retrouve ensuite ? Je n'ai pas l'habitude d'envoyer des données sérialisées dans une base.

Posté il y a 1 mois
Avatar de nezga
nezga

Bah mes colonnes image_products et reference sont en varchar et ma colonne products en text. En fait je débute dans laravel, et je suis le tuto de Nord Coders (https://www.youtube.com/watch?v=rRNIMJ6RvDo&list=PLeeuvNW2FHVixxKWVXqhjH1_5CPQ7nffP&index=7)

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Puisque tu es parti sur de la sérialisation autant continuer mais tu devras peut-être changer le type de colonnes :

$order->image_products = serialize($image); 
$order->reference = serialize($reference); 

Pour ton histoire de redirection et de vidage de panier je ne vois pas le rapport.

Posté il y a 1 mois
Avatar de nezga
nezga

j'ai déjà esssayé avec la sérialisation mais le problème c'est que je ne peux pas voir les images dans ma table orders et je voudrais les voir, car c'est plus simple pour la gestion de commande. Et en ce qui concerne les références jprefererais que ce soit des données tels qu'elles sont sans la sérialisation, c'est une fois de plus plus pratique ^^(je suis un peu chiant désolé)

PS : j'utilise voyager pour l'administration de mon site

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Tu veux dire quoi par "voir les images dans ma table orders" ? Il faudrait bien voir ton schéma de données, ce n'est pas évident à comprendre comme ça.

Posté il y a 1 mois
Avatar de nezga
nezga

En fait ce que je veux dire par la c'est que dans mon panel d'administration (voyager), je veux voir dans mon bread "orders" dans la ligne correspondant à la commande, l'image du produit ou des produits commander ainsi que la réference des produits.

En ce qui concerne la composition de ma table, cette dernière est composé de plusieurs colonnes, une colonne products, une colonne image_products et une colonne reference et ce qui m'interesse moi c'est de pouvoir enregistrer les images et les réferences des produits commander par le client dans les colonnes image_products et reference.

Je sais pas si je suis clair

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Je n'ai pas utilisé Voyager depuis longtemps, de mémoire je l'avais abandonné parce que je n'avais pas assez de latitudes pour faire mes adaptations.

Posté il y a 1 mois
Avatar de nezga
nezga

ah d'accord, ducoup tu saurais pas comment je pourrais faire ?

Posté il y a 1 mois
Avatar de bestmomo
bestmomo

Ca serait bien que quelqu'un qui utilise Voyager puisse te répondre, moi je ne le pratique pas...

Posté il y a 1 mois
Avatar de nezga
nezga

après c'est pas spécialement dans voyager, je voudrais juste enregistrer les photos des produits dans ma base mais avec mon code que j'ai donnée au départ, il n'y a qu'une seule image qui s'enregistre.

Posté il y a 1 mois
Avatar de mr_debutant
mr_debutant

Personne ne peut nous sauver ? svp ? Je rencontre un problème similaire à celui de nezga ..

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.