Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/09/2015, 18:53
daymerrf
 
Fecha de Ingreso: febrero-2013
Mensajes: 66
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: problema al validar un formulario embebido

Ya hice todo lo que me dijiste, y leyendo en la url que me dejaste el atributo phones en la entidad User le modifique las anotaciones de la siguiente manera:
Código PHP:
Ver original
  1. /**
  2.      * @var Phones
  3.      *
  4.      * @ORM\OneToMany(targetEntity="Phone", mappedBy="hostal", cascade={"persist" , "remove"})  
  5.      * @Assert\Valid
  6.      */
  7.     protected $phones;

pero lamentablemente me sigue dando el mismo error, me valida, pero cuando reviso la base de datos el teléfono ha sido modificado, voy a ponerte también a continuación el código del controlador para que también lo veas

Código PHP:
Ver original
  1. <?php
  2.  
  3. namespace AppBundle\Controller\Admin;
  4.  
  5. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  6. use Symfony\Component\HttpFoundation\Request;
  7.  
  8. class UserController extends Controller {
  9.  
  10.  public function editAction(Request $request, $id) {
  11.         $translator = $this->get('translator');
  12.         $em = $this->getDoctrine()->getManager();
  13.         $user = $em->getRepository('AppBundle:User')->findOneById($id);
  14.  
  15.         if (!$user)
  16.             return Helpers::error404($this, $translator->trans('user.not.found', array(), 'admin'), $translator->trans('back.users', array(), 'admin'), 'fa fa-bed fa-fw', $this->generateUrl('admin_users'));
  17.    
  18.         $originalPhones = array();
  19.         // Create an array of the current phones objects in the database
  20.         foreach ($user->getPhones() as $phone) {
  21.             $originalPhones[] = $phone;
  22.         }
  23.  
  24.        
  25.         $form = $this->createForm(new UserType(), $user);
  26.  
  27.         if ($request->getMethod() == 'POST') {
  28.            
  29.             $form->handleRequest($request);
  30.  
  31.             if ($form->isValid()) {
  32.  
  33.                 //process to update the phones
  34.                 // filter $originalPhones to contain tags no longer present
  35.                 foreach ($user->getPhones() as $phone) {
  36.                     foreach ($originalPhones as $key => $toDel) {
  37.                         if ($toDel->getId() === $phone->getId()) {
  38.                             unset($originalPhones[$key]);
  39.                         }
  40.                     }
  41.                 }
  42.  
  43.                 // remove the relationship between the phone and the User
  44.                 foreach ($originalPhones as $phone) {
  45.                     $user->getPhones()->removeElement($phone);
  46.                     $em->remove($phone);
  47.                 }
  48.  
  49.                 $em->persist($user);
  50.                 $em->flush();
  51.                              
  52.                 return $this->redirect($this->generateUrl('admin_users'));
  53.             }
  54.         }
  55.        
  56.         return $this->render('AppBundle:Admin/user:form.html.twig', array(
  57.                     'form' => $form->createView(),                  
  58.                     'action' => 'Edit',`                    
  59.         ));
  60.     }
  61. }

Última edición por daymerrf; 22/09/2015 a las 18:55 Razón: Metodo con error