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
Code : Tout sélectionner
$builder
->add('quantite');
$builder
->add('add', SubmitType::class, [
'label' => 'Ajouter au panier',
]);Code : Tout sélectionner
{{ 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'}}) }}Code : Tout sélectionner
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()
]);
}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
ArticleCommande est l'entité représentant les lignes d'une commande, donc l'objet à rajouter dans le panier
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
Code : Tout sélectionner
dd('qqchose')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 ??