Foros del Web » Programando para Internet » PHP » Symfony »

Error al setear objeto en formulario

Estas en el tema de Error al setear objeto en formulario en el foro de Symfony en Foros del Web. Buenas! tengo un problema al intentar guardar 2 objetos, cliente y vehiculo en la BD a traves de un form, me tira el siguiente error: ...
  #1 (permalink)  
Antiguo 26/03/2015, 17:31
 
Fecha de Ingreso: marzo-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Error al setear objeto en formulario

Buenas! tengo un problema al intentar guardar 2 objetos, cliente y vehiculo en la BD a traves de un form, me tira el siguiente error:

Catchable Fatal Error: Argument 1 passed to taller\tallerBundle\Entity\vehiculo::setCliente() must be an instance of taller\tallerBundle\Entity\cliente, array given, called in C:\xampp\htdocs\symfony\vendor\symfony\symfony\src \Symfony\Component\PropertyAccess\PropertyAccessor .php on line 442 and defined
500 Internal Server Error - ContextErrorException

en el controlador tengo esto:

Código PHP:
.....

    
$cliente = new cliente();  
        
$vehiculo = new vehiculo();
        
$form $this-> createForm(new vehiculoType(), $vehiculo);
        
$form -> handleRequest($request);
        if (
$form ->isvalid()) {
                
$em $this -> getDoctrine()-> getManager();
                
$em -> persist($cliente);
                
$em -> persist($vehiculo);
                
$em -> flush();
..... 
clase vehiculo

Código PHP:
...

private 
$cliente;


    
/**
     * Set cliente
     *
     * @param \taller\tallerBundle\Entity\cliente $cliente
     * @return vehiculo
     */
    
public function setCliente(tallertallerBundleEntitycliente $cliente null)
    {
        
$this->cliente $cliente;

        return 
$this;
    }

    
/**
     * Get cliente
     *
     * @return \taller\tallerBundle\Entity\cliente 
     */
    
public function getCliente()
    {
        return 
$this->cliente;
    }

.. 
Estare atento a cualquier ayuda, muchisimas gracias
saludos
  #2 (permalink)  
Antiguo 26/03/2015, 17:35
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error al setear objeto en formulario

Lo que te esta tratando de decir el error es que le estas pasando un Arreglo en lugar de pasar una instancia de la clase \Taller\TallerBundle\Entity\Cliente. Por otra parte sigue la convención Came Case para los nombres de clases.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 26/03/2015, 17:53
 
Fecha de Ingreso: marzo-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Error al setear objeto en formulario

sisi ya habia entendido que me toma un array, eso es lo que quiero saber, que hacer para que lo tome como instancia de la clase cliente. disculpa mi ignorancia..
gracias voy a leer tambien lo de la convencion Came Case.
  #4 (permalink)  
Antiguo 26/03/2015, 17:54
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error al setear objeto en formulario

Publica como tienes el formulario
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 26/03/2015, 19:32
 
Fecha de Ingreso: marzo-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Error al setear objeto en formulario

formulario de cliente
Código PHP:
class clienteType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder 
            
-> add('Nombre''text')
                -> 
add('Direccion''text')
            -> 
add('Telefono''text')
            -> 
add('Email''text');
    }
    public function 
getName()
    {
        return 
'cliente';
    }
    public function 
getDefaultOptions(array $opciones)
    {
        return array(
'data_class' => 'taller\tallerBundle\Entity\cliente');
    }


formulario de vehiculo

Código PHP:
class vehiculoType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder 
            
-> add('Cliente', new clienteType())
            -> 
add('Marca''text')
                -> 
add('Modelo''text')
            -> 
add('Dominio''text');

    }
    public function 
getName()
    {
        return 
'vehiculo';
    }
    public function 
getDefaultOptions(array $opciones)
    {
        return array(
'data_class' => 'taller\tallerBundle\Entity\vehiculo');
    }


  #6 (permalink)  
Antiguo 27/03/2015, 12:08
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error al setear objeto en formulario

Es raro en apariencia tus formularios están bien, que relacional declaraste entre vehículo y cliente ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 28/03/2015, 10:10
 
Fecha de Ingreso: marzo-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Error al setear objeto en formulario

ciente.orm.yml:

Código PHP:
  oneToMany:
        
vehiculos:
            
targetEntityvehiculo
            mappedBy
cliente 
vehiculo.orm.yml

Código PHP:
manyToOne:
        
cliente:
            
targetEntitycliente
            inversedBy
vehiculos
            joinColumn
:
                
nameclienteid
                referencedColumnName
id 
la verdad que nose que anda pasando
  #8 (permalink)  
Antiguo 09/04/2015, 13:25
 
Fecha de Ingreso: marzo-2015
Mensajes: 6
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Error al setear objeto en formulario

por favor alguna idea? no lo puedo solucionar todavia me esta quemando la cabeza

Etiquetas: doctrine, form, symfony2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.