/** * @Route("/personalizar", name="profesional_style") * @Template() */ public function stylesAction() { $em = $this->getDoctrine()->getManager(); $usermanager = $this->get('fos_user.user_manager'); $user = $this->get('security.context')->getToken()->getUser(); $professional = $user->getProfessional(); $username = $user->getUsername(); if (!$professional) { throw new \Exception("Error cargando perfil."); } $styles = $professional->getStyles(); if (!$styles) { $styles = new Styles(); $styles->setProfessional($professional); $professional->setStyles($styles); $styles->setCreatedAt(new \DateTime()); } $form = $this->createForm(new StylesType(), $styles); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { $styles->setUpdatedAt(new \DateTime()); $styles->upload($username); //recojo el usuario y hago update de el $usermanager->updateUser($styles->getProfessional()->getUser()); $em->persist($styles); $em->persist($professional); $em->flush(); $this->get('session')->getFlashBag()->add('notice', 'Tu plataforma se ha actualizado con éxito'); return $this->redirect($this->generateUrl('profesional_consulta')); } } return array('form' => $form->createView()); }
/** * @Route("/professionals/styles/{id}", name="admin_professionals_styles") * @Template() */ public function stylesAction($id) { $em = $this->getDoctrine()->getManager(); $usermanager = $this->get('fos_user.user_manager'); $user = $em->createQuery("SELECT u FROM CoreUserBundle:User u LEFT JOIN u.professional p WHERE u.id = :uid")->setParameter('uid', $id)->getSingleResult(); $professional = $user->getProfessional(); $username = $user->getUsername(); if (!$professional) { throw new \Exception("Error cargando profesional."); } $styles = $professional->getStyles(); if (!$styles) { $styles = new Styles(); $styles->setProfessional($professional); $professional->setStyles($styles); $styles->setCreatedAt(new \DateTime()); } $form = $this->createForm(new StylesType(), $styles); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { $styles->setUpdatedAt(new \DateTime()); $styles->upload($username); $em->persist($styles); $em->persist($professional); $em->flush(); $this->get('session')->getFlashBag()->add('notice', 'Estilo del profesional guardado on éxito'); return $this->redirect($this->generateUrl('admin_professionals_styles', array('id' => $id))); } } return array('form' => $form->createView()); }