/** * Cette methode me permettra de charger mes données * (catégories) * {@inheritDoc} */ public function load(ObjectManager $manager) { // Ma 1ere catégorie $categorie = new Category(); $categorie->setTitle('Colliers Magnifiques'); $categorie->setDescription('Jolie description de vos magnifiques colliers'); // Ma 2ere catégorie $categorie2 = new Category(); $categorie2->setTitle('Bracelets Glamours'); $categorie2->setDescription('Belle description complete de vos bracelets glamours'); // Mon 1er produit $product = new Product(); // Associé un jeweler à mon produit // Je recupere mon jeweler numéro 1 $jeweler = $manager->getRepository('StoreBackendBundle:Jeweler')->find(1); $product->addCategory($categorie); $product->setJeweler($jeweler); $product->setTitle('Collier Azure Ete'); $product->setDescription('Collier composé de perles nacrées avec vernissage et finition de pierres Swarovski'); $product->setComposition('Perles nacrées, Pierres précieuses'); $product->setActive(true); $product->setCover(true); $manager->persist($product); $manager->persist($categorie); $manager->persist($categorie2); $manager->flush(); }
/** * Page Action * Je recupere l'objet Request qui contient toutes mes données en GET, POST ... */ public function newAction(Request $request) { //je créer une nouvel objet de mon entité Product $product = new Product(); $user = $this->getUser(); $product->setJeweler($user); //j'associe mon jeweler 1 à mon bijou // je crée un formulaire de bijou en associant avec mon bijou $form = $this->createForm(new ProductType($user), $product, array('validation_groups' => 'new', 'attr' => array('method' => 'post', 'novalidate' => "novalidate", 'action' => $this->generateUrl('store_backend_product_new')))); // Je fusionne ma requête avec mon formulaire $form->handleRequest($request); // Si la totalité du formulaire est valide if ($form->isValid()) { // j'upload mon fichier en faisant appel a la methode upload() $product->upload(); $em = $this->getDoctrine()->getManager(); //je récupère le manager de Doctrine $em->persist($product); //j'enregistre mon objet product dans doctrine $em->flush(); //j'envoi ma requete d'insert à ma table product //je créer un message flash avec pour clef "success" // et un message de confirmation $this->get('session')->getFlashBag()->add('success', 'Votre bijou a bien été crée'); //je récupere la quantité du bijou enregistrer $quantity = $product->getQuantity(); if ($quantity == 1) { //je créer un message flash avec pour clef "success" // et un message de confirmation $this->get('session')->getFlashBag()->add('warning', 'Votre bijou est un bijou unique !'); } return $this->redirectToRoute('store_backend_product_list'); //redirection selon la route } return $this->render('StoreBackendBundle:Product:new.html.twig', array('form' => $form->createView())); }