public function load(ObjectManager $manager) { $to = 1; $listApplications = array(array("author" => "Farid", "content" => "Je suis un super chef de projet"), array("author" => "Romain", "content" => "Je suis un super développeur"), array("author" => "Pascal", "content" => "Je suis un super papa!")); $em = $manager->getRepository('OCPlatformBundle:Advert'); foreach ($listApplications as $listApplication) { // On crée la catégorie $application = new Application(); $application->setAuthor($listApplication['author']); $application->setContent($listApplication['content']); switch ($listApplication['author']) { case 'Farid': $advert = $em->findOneBy(array('title' => 'Recherche chef de projet')); $application->setAdvert($advert); break; case 'Romain': $advert = $em->findOneBy(array('title' => 'Recherche développeur js')); $application->setAdvert($advert); break; case 'Pascal': $advert = $em->findOneBy(array('title' => 'Recherche papa')); $application->setAdvert($advert); break; } // On la persiste $manager->persist($application); } // On déclenche l'enregistrement de toutes les applications $manager->flush(); }
public function addAction(Request $request) { // On récupère l'EntityManager $em = $this->getDoctrine()->getManager(); // 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…"); // 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); } // 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); // Création d'une première candidature $application1 = new Application(); $application1->setAuthor('Marine'); $application1->setContent("J'ai toutes les qualités requises."); // Création d'une deuxième candidature par exemple $application2 = new Application(); $application2->setAuthor('Pierre'); $application2->setContent("Je suis très motivé."); // On lie les candidatures à l'annonce $application1->setAdvert($advert); $application2->setAdvert($advert); // Étape 1 bis : pour cette relation pas de cascade lorsqu'on persiste Advert, car la relation est // définie dans l'entité Application et non Advert. On doit donc tout persister à la main ici. $em->persist($application1); $em->persist($application2); $em->persist($advert); $em->flush(); if ($request->isMethod('POST')) { $request->getSession()->getFlashBag()->add('notice', 'Annonnce bien enregistrée.'); } return $this->redirect($this->generateUrl('oc_platform_view', array('id' => $advert->getId()))); }
/** * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function addAction(Request $request) { $params = array(); // Création de l'entité $advert = new Advert(); $advert->setTitle('Mission de webmaster.'); $advert->setAuthor('Hugo'); $advert->setContent("Nous recherchons un webmaster débutant sur Paris. Blabla…"); // On peut ne pas définir ni la date ni la publication, // car ces attributs sont définis automatiquement dans le constructeur // Création d'une première candidature $application1 = new Application(); $application1->setAuthor('Marine'); $application1->setContent("J'ai toutes les qualités requises."); // Création d'une deuxième candidature par exemple $application2 = new Application(); $application2->setAuthor('Pierre'); $application2->setContent("Je suis très motivé."); // On lie les candidatures à l'annonce $application1->setAdvert($advert); $application2->setAdvert($advert); // On récupère l'EntityManager $em = $this->getDoctrine()->getManager(); // Étape 1 : On « persiste » l'entité $em->persist($advert); // Étape 1 bis : pour cette relation pas de cascade lorsqu'on persiste Advert, car la relation est // définie dans l'entité Application et non Advert. On doit donc tout persister à la main ici. $em->persist($application1); $em->persist($application2); // Étape 2 : On « flush » tout ce qui a été persisté avant $em->flush(); // Reste de la méthode qu'on avait déjà écrit if ($request->isMethod('POST')) { $request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.'); return $this->redirect($this->generateUrl('oc_platform_view', array('id' => $advert->getId()))); } $params['advert'] = $advert; return $this->render('OCPlatformBundle:Advert:add.html.twig', $params); }
public function addAction(Request $request) { // Création de l'entité $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 d"une première candidature $application1 = new Application(); $application1->setAuthor('Marine'); $application1->setContent("J'ai toutes les qualités requises."); // Création d'une deuxième candidature $application2 = new Application(); $application2->setAuthor('Pierre'); $application2->setContent("Je suis très motivé."); // On lie les candidatures à l'annonce $application1->setAdvert($advert); $application2->setAdvert($advert); // 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); // On récupère l'EntityManager $em = $this->getDoctrine()->getManager(); // 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 toujours la même $advertSkill->setAdvert($advert); // On la lie à la compétennce, 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); } // Etape 1 : On « persiste » l'entité $em->persist($advert); // Étape 1 bis : pour cette relation pas de cascade lorsqu'on persiste Advert, car la relation est // définie dans l'entité Application et non Advert. On doit donc tout persister à la main ici. $em->persist($application1); $em->persist($application2); // La méthode findAll retourne toutes les catégories de la base de données $listCategories = $em->getRepository('OCPlatformBundle:Category')->findAll(); // On boucle sur les catégories pour les lier à l'annonce foreach ($listCategories as $category) { $advert->addCategory($category); } // Etape 2 : On « flush » tout ce qui a été persisté avant $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())); } // Si on n'est pas en POST, alors on affiche le formulaire return $this->render('OCPlatformBundle:Advert:add.html.twig'); }
public function editAction($id, Request $request) { $em = $this->getDoctrine()->getManager(); $advert = $em->getRepository('OCPlatformBundle:Advert')->find($id); /* $categories = $em->getRepository('OCPlatformBundle:Category')->findAll(); foreach($categories as $category){ $advert->addCategory($category); } */ //$advert->setTitle('test2'); $application1 = new Application(); $application1->setAuthor('Romain'); $application1->setContent('Test content' . time()); $application1->setAdvert($advert); $em->persist($application1); $em->flush(); // Même mécanisme que pour l'ajout if ($request->isMethod('POST')) { $request->getSession()->getFlashBag()->add('notice', 'Annonce bien modifiée.'); return $this->redirectToRoute('oc_platform_view', array('id' => 5)); } return $this->render('OCPlatformBundle:Advert:edit.html.twig', array('advert' => $advert)); }