par
mofogasy » 08 juil. 2022, 17:25
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
Code : Tout sélectionner
$builder
->add('quantite');
$builder
->add('add', SubmitType::class, [
'label' => 'Ajouter au panier',
]);
le twig:
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'}}) }}
et le controller qui semble faire être le souci
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()
]);
}
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
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
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 ??
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
[code]$builder
->add('quantite');
$builder
->add('add', SubmitType::class, [
'label' => 'Ajouter au panier',
]);[/code]
le twig:
[code]{{ 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]
et le controller qui semble faire être le souci
[code]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()
]);
}[/code]
quand je clique sur ajouter au panier, j'obtiens
[i]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[/i]
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]dd('qqchose')[/code] 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 ??