コード例 #1
0
 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())));
 }
コード例 #2
0
ファイル: LoadApplication.php プロジェクト: vincentmary/oc_sf
 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();
 }
コード例 #3
0
 /**
  * @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);
 }
コード例 #4
0
ファイル: Advert.php プロジェクト: abenali/SymfonyProject
 /**
  * @param Application $application
  * @return Advert
  */
 public function addApplication(Application $application)
 {
     $this->applications[] = $application;
     // On lie l'annonce à la candidature
     $application->setAdvert($this);
     return $this;
 }
コード例 #5
0
ファイル: Advert.php プロジェクト: rhidja/Symfony
 /**
  * Add application
  *
  * @param \OC\PlatformBundle\Entity\Application $application
  *
  * @return Advert
  */
 public function addApplication(\OC\PlatformBundle\Entity\Application $application)
 {
     $this->applications[] = $application;
     // On lie l'annonce à la candidature
     $application->setAdvert($this);
     return $this;
 }
コード例 #6
0
ファイル: Advert.php プロジェクト: zoedujeux/Symfony
 /**
  * @param Application $application
  * @return Advert
  */
 public function addApplication(Application $application)
 {
     $this->applications[] = $application;
     $application->setAdvert($this);
     return $this;
 }
コード例 #7
0
 /**
  * Add application
  *
  * @param \OC\PlatformBundle\Entity\Application $application
  * @return Advert
  */
 public function addApplication(\OC\PlatformBundle\Entity\Application $application)
 {
     $this->applications[] = $application;
     $application->setAdvert($this);
     return $this;
 }
コード例 #8
0
 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');
 }
コード例 #9
0
 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));
 }