Bonjour,
j'implémente cette fonction "très basique" et j'ai du mal à faire passer les infos lors du clic "ajout dans le panier".
D'abord dans mon projet, le panier est une commande qui a un statut panier, et l'ajout au panier se fait uniquement pour les utilisateurs connéctés . Si jamais quelqu'un a une source /code qui remplit ces 2 critère je veux bien le checker.
Voici mes fichiers:
le formbuilder
$builder
->add('quantite');
$builder
->add('add', SubmitType::class, [
'label' => 'Ajouter au panier',
]);
le twig:
{{ form_label(form.quantite) }}
{{ form_widget(form.quantite, {
'attr': {
'class': 'form-control ' ~ (form.quantite.vars.valid ? '' : 'is-invalid')
}
}) }}
<div class="invalid-feedback">
{{ form_errors(form.quantite) }}
</div>
</div>
{{ form_widget(form.add, {'attr': {'class': 'btn btn-warning'}}) }}
et le controller qui semble faire être le souci
public function ajouterAuPanier(...)
{
$form = $this->createForm(AjouterAuPanierType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$item = $form->getData();
$item->setArticle($article);
$panier = $user->getPanier();
$panier
->addArticleCommande($article)
->setDateMaj(new \DateTime());
$commandeRepository->PanierEnregistre($panier, $user);
return $this->redirectToRoute('app_ajouter_panier', ['id' => $produit->getId()]);
}
return $this->render('catalogue/produit/articles.html.twig', [
'produit' => $produit,
'form' =>$form->createView()
]);
}
quand je clique sur ajouter au panier, j'obtiens
Too few arguments to function App\Entity\ArticleCommande::__construct(), 0 passed in C:\siteEcommerceApema\bases éventuelles\finish\vendor\symfony\form\Extension\Core\Type\FormType.php on line 160 and at least 2 expected
car mon constructeur
ArticleCommande est l'entité représentant les lignes d'une commande.
Mon problème:
je ne sais pas du tout à quel moment à quel endroit du code j'envoi ces paramètres.
J'ai essayé de faire dd('qqchose')
dans le controller mais, l'erreur tombe avant (le controlleur return sur lui même).
La doc officielle est trop succinte du coup la validation du formulaire est très sombre pour moi.
Auriez vous des solutions ? Des sujets similaires résolus ? des documentations fournies ??
bonsoir
sur youtube
panier symfony 5
tu tombe sur les deux premier qui traite bien le sujet. il terestera les information de l'utilisateur à associer à la commande
bon courage
Merci ppour ton aide
Je ne sais pas si tu as pu regarder les vidéos proposées mais chacune d'elles utilise exclusivement les sessions. Le projet de nouvelle techno n'a même pas d'entity user.
Et la video de Chamla indique d'emblée dans le titre: SESSION. J'ai quand même pris la peine de voir en acceléré chacune des vidéos et pas de user.
Pour rappel dans mon projet, le panier n'existe pas sans user.
Merci quand même
Vous tombez sur les deux premiers, qui font tous deux un excellent travail pour aborder le sujet. il s'agira de tester les informations de l'utilisateur à associer à la commande
Bonne chance
stumble guys