Exemplo n.º 1
0
 public function findByProvider(Provider $provider)
 {
     $idArray = [];
     /** @var Contact $contact */
     foreach ($provider->getContacts() as $contact) {
         $idArray[] = $contact->getId();
     }
     $query = $this->createQueryBuilder('c')->where('c.id IN (:id)')->setParameter('id', $idArray);
     return $query;
 }
Exemplo n.º 2
0
 /**
  * @Route("/edit/{provider}", name="provider_edit",options={"expose"=true})
  * @Template("AppBundle:Provider:edit.html.twig")
  * @param Provider $provider
  * @ParamConverter("provider", class="AppBundle:Provider")
  * @return Response
  */
 public function editAction(Request $request, Provider $provider)
 {
     $originalContact = new ArrayCollection();
     foreach ($provider->getContacts() as $c) {
         $originalContact->add($c);
     }
     $originalTags = new ArrayCollection();
     foreach ($provider->getTags() as $t) {
         $originalTags->add($t);
     }
     $form = $this->createForm(new ProviderType(), $provider);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         foreach ($originalContact as $c) {
             if (false === $provider->getContacts()->contains($c)) {
                 $provider->removeContact($c);
                 $em->remove($c);
             }
         }
         /** @var Tag $t */
         foreach ($originalTags as $t) {
             if (false === $provider->getTags()->contains($t)) {
                 $t->removeProvider($provider);
                 $em->persist($t);
             }
         }
         $provider->setLastModification(new \DateTime());
         /** @var Tag $tag */
         foreach ($provider->getTags() as $tag) {
             $tag->addProvider($provider);
             $em->persist($tag);
         }
         $em->persist($provider);
         $em->flush();
         return $this->redirect($this->generateUrl('provider_show', array('provider' => $provider->getId())));
     }
     return array('form' => $form->createView());
 }