patrice86
Messages postés1378Date d'inscriptiondimanche 26 octobre 2008StatutMembreDernière intervention26 novembre 2023
-
Modifié par patrice86 le 17/05/2015 à 11:41
patrice86
Messages postés1378Date d'inscriptiondimanche 26 octobre 2008StatutMembreDernière intervention26 novembre 2023
-
17 mai 2015 à 11:42
Bonjour,
Je suis entrain de développer une application qui permet de saisir des commandes à l'aide de Symfony 2.6.
L'idée est qu'une commande est liée obligatoirement à une personne et peut être composée de 1 ou plusieurs produits.
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('quantity', 'integer', array("label" => "XXXXXRhBundle.customers.page_new_edit.firstName"))
->add('product','entity', array ('class' => 'XXXXX\ProductBundle\Entity\Product', 'empty_value' => 'Choisissez un produit...', 'required' => true));
}
Lors de la soumission du formulaire ShoppingType, il faut donc dans un premier temps créer une commande dans la base de données et juste après créer des lignes dans l'entité ShoppingProduct afin d'avoir pour une commande, plusieurs produits et la quantité pour chacun des produits.
Pour tester, je submit mon formulaire en indiquant deux produits dans la commande.
Lors du flush, une nouvelle commande est créée dans Shopping et dans ShoppingProduct deux lignes sont bien créées (une par produit). Hors, voici ce qui est enregistré :
Comme vous pouvez le voir, le premier produit est enregistré correctement dans le second il manque les informations de shopping ! Et là, je ne vois pas du tout comment résoudre ce problème !
</ital>
OrderController
public function createAction(Request $request)
{
public function createAction(Request $request)
{
$shopping = new Shopping();
$shoppingProduct = new ShoppingProduct();
$form = $this->createCreateForm($shopping);
$shopping->addShoppingProduct($shoppingProduct);
if ($request->isMethod('POST')) {
$form->handleRequest($request);
var_dump($shopping->getShoppingProducts());
$em = $this->getDoctrine()->getManager();
$em->persist($shopping);
$em->flush();
return $this->redirect($this->generateUrl('stanhome_shopping_shopping_show', array('id' => $shopping->getId())));
}
return array(
'entity' => $shopping,
'form' => $form->createView(),
);
}