public function load(ObjectManager $manager) { //annonces à ajouter //annonce d'Alexandre $advertAlex = new Advert(); $advertAlex->setImage($this->getReference('image-jdr')); $advertAlex->setTitle('Recherche développeur Symfony2'); $advertAlex->setAuthor('Alexandre'); $advertAlex->setContent('Nous recherchons un développeur'); $advertAlex->setSlug('recherche-developpeur'); $advertAlex->setDate(new \Datetime()); //annonce d'Hugo $advertHugo = new Advert(); $advertHugo->setImage($this->getReference('image-af')); $advertHugo->setTitle('Mission de webmaster'); $advertHugo->setAuthor('Hugo'); $advertHugo->setContent('Nous recherchons un webmaster capable de maintenir notre site internet. Blabla…'); $advertHugo->setSlug('mission-webmaster'); $advertHugo->setDate(new \Datetime()); //annonce de Mathieu $advertMat = new Advert(); $advertMat->setImage($this->getReference('image-pa')); $advertMat->setTitle('Offre de stage webdesigner'); $advertMat->setAuthor('Mathieu'); $advertMat->setContent('Nous proposons un poste pour webdesigner. Blabla…'); $advertMat->setSlug('stage-webdesigner'); $advertMat->setDate(new \Datetime()); // On la persiste $manager->persist($advertAlex); $manager->persist($advertHugo); $manager->persist($advertMat); // On déclenche l'enregistrement de toutes les catégories $manager->flush(); }
public function addAction(Request $request) { // On récupère l'EntityManager $em = $this->getDoctrine()->getManager(); // La gestion d'un formulaire est particulière, mais l'idée est la suivante : // // $em = $this->getDoctrine()->getManager(); // $advert2 = $em->getRepository('OCPlatformBundle:Advert')->find('46b46640-d976-11e5-8bcc-080027716959'); // // // On modifie cette annonce, en changeant la date à la date d'aujourd'hui // $advert2->setDate(new \Datetime()); // Création de l'entité Advert $advert = new Advert(); $advert->setTitle('Recherche développeur Symfony2.'); $advert->setAuthor('Alexandre'); $advert->setContent("Nous recherchons un développeur Symfony2 débutant sur Lyon. Blabla…"); // Création de l'entité Image $image = new Image(); $image->setUrl('http://sdz-upload.s3.amazonaws.com/prod/upload/job-de-reve.jpg'); $image->setAlt('Job de rêve'); // On lie l'image à l'annonce $advert->setImage($image); $application1 = new Application(); $application1->setAuthor('Romain'); $application1->setContent('Test content'); $application2 = new Application(); $application2->setAuthor('John'); $application2->setContent('Test content 2'); $application1->setAdvert($advert); $application2->setAdvert($advert); // On récupère toutes les compétences possibles $listSkills = $em->getRepository('OCPlatformBundle:Skill')->findAll(); // Pour chaque compétence foreach ($listSkills as $skill) { // On crée une nouvelle « relation entre 1 annonce et 1 compétence » $advertSkill = new AdvertSkill(); // On la lie à l'annonce, qui est ici toujours la même $advertSkill->setAdvert($advert); // On la lie à la compétence, qui change ici dans la boucle foreach $advertSkill->setSkill($skill); // Arbitrairement, on dit que chaque compétence est requise au niveau 'Expert' $advertSkill->setLevel('Expert'); // Et bien sûr, on persiste cette entité de relation, propriétaire des deux autres relations $em->persist($advertSkill); } $categories = $em->getRepository('OCPlatformBundle:Category')->findAll(); foreach ($categories as $category) { $advert->addCategory($category); } // Étape 1 : On « persiste » l'entité $em->persist($advert); // Étape 1 bis : si on n'avait pas défini le cascade={"persist"}, // on devrait persister à la main l'entité $image $em->persist($application1); $em->persist($application2); // Étape 2 : On déclenche l'enregistrement $em->flush(); // Si la requête est en POST, c'est que le visiteur a soumis le formulaire if ($request->isMethod('POST')) { // Ici, on s'occupera de la création et de la gestion du formulaire } $request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.'); // Puis on redirige vers la page de visualisation de cettte annonce return $this->redirectToRoute('oc_platform_view', array('id' => $advert->getId())); }