/** * 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(); }
/** * New category page * @return \Symfony\Component\HttpFoundation\Response */ public function newAction(Request $request) { $category = new Category(); $user = $this->getUser(); $category->setJeweler($user); //j'associe mon jeweler 1 à mon produit // je crée un formulaire de produit $form = $this->createForm(new CategoryType($user), $category, array('validation_groups' => 'new', 'attr' => array('method' => 'post', 'novalidate' => 'novalidate', 'action' => $this->generateUrl('store_backend_category_new')))); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); //je récupère le manager de Doctrine // j'upload mon fichier en faisant appel a la methode upload() $category->upload(); $em->persist($category); //j'enregistre mon objet product dans doctrine $em->flush(); //j'envoie ma requete d'insert à ma table product // création de l'ACL $aclProvider = $this->get('security.acl.provider'); $objectIdentity = ObjectIdentity::fromDomainObject($category); $acl = $aclProvider->createAcl($objectIdentity); // retrouve l'identifiant de sécurité de l'utilisateur actuellement connecté $tokenStorage = $this->get('security.token_storage'); $user = $tokenStorage->getToken()->getUser(); $securityIdentity = UserSecurityIdentity::fromAccount($user); // donne accès au propriétaire $acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER); $aclProvider->updateAcl($acl); $this->get('session')->getFlashBag()->add('success', 'Votre catégorie a bien été crée'); return $this->redirectToRoute('store_backend_category_list'); //redirection selon la route } return $this->render('StoreBackendBundle:Category:new.html.twig', array('form' => $form->createView())); }