Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/07/2012, 23:08
rikar2s
 
Fecha de Ingreso: julio-2012
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 0
Error al setear un objecto en Symfony2

Hola,

Espero que me puedan ayudar con mi problema.

Tengo dos entidades, sucursal y vehiculo, estas dos no estan relacionadas entre ellas, pero si estan relacionadas con la entidad Comuna.

Tengo un formulario donde el usuario ingresa un vehiculo, y también elige una sucursal en el mismo formulario, donde al enviar el formulario, en el controlador debo recuperar la comuna a la cual pertenece la sucursal e ingresarla a vehiculo.

Cuando llega el id de la sucursal al controlador, realizo un find de la siguiente manera:

Código PHP:
$sucursal $em->getRepository('SertecomvendoautosBundle:Sucursal')->find($request->get('id_sucursal')); 
Lo anterior me devuelve un proxy object con la sucursal encontrada, entonces debo recuperar la comuna y setearla a la entidad vehiculo

Código PHP:
$entity->setCo($sucursal->getCo()); 
Pero el error se lanza en el $form->bindRequest($request);

Código PHP:
 $form->bindRequest($request); 
Esta la excepción

Código:
Catchable Fatal Error: Argument 1 passed to Sertecom\vendoautosBundle\Entity\Vehiculo::setCo() must be an instance of Sertecom\vendoautosBundle\Entity\Comuna, null given, called in /var/www/vendor/symfony/src/Symfony/Component/Form/Util/PropertyPath.php on

Dejo el código completo del controlador:

Código PHP:
public function createAction()
    {
        
$entity  = new Vehiculo();
        
        
$em $this->getDoctrine()->getEntityManager();
        
$request $this->getRequest();
        
$form    $this->createForm(new VehiculoType(), $entity);
        
$sucursal $em->getRepository('SertecomvendoautosBundle:Sucursal')->find($request->get('id_sucursal'));
           
        
$entity->setCo($sucursal->getCo());
        
$form->bindRequest($request);

         if (
$form->isValid()) {
            
            
$em->persist($entity);
            
$em->flush();

          
            return 
$this->redirect($this->generateUrl('vehiculo_imagen', array('idve' => $entity->getVeId())));
        }

        return array(
            
'entity' => $entity,
            
'form'   => $form->createView()
        );

Espero que me puedan ayudar

De antemano gracias.

Saludos