Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2014, 12:46
Avatar de verinchi
verinchi
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 20 años, 3 meses
Puntos: 2
Sonrisa Error en Create pero no en update, no logro ver el problema

Buenas gente.

Estoy insertando un dato simple con un formulario y me devuelve un error que no tendría sentido de acuerdo a como están definidas las entidades que manejo. Incluso el mismo formulario funciona para el update pero no en el insert ¿?

Alguno ve algo que pueda servir para orientarme?

Tengo lo siguiente:

Formulario:
Código PHP:
class ConvcomisType extends AbstractType
{
    public function 
buildForm(FormBuilderInterface $builder, array $options)
    {
        
$builder
            
->add('ccconvid''entity', array('class' => 'Proyecto\ComisionBundle\Entity\Convencional',
                
'label' => 'Convencional ',
                
'required' => true,
                
'query_builder' => function(DoctrineORMEntityRepository $er ) {
                    return 
$er->createQueryBuilder('v')
                    ->
orderBy('v.conv_nombre''ASC')
                    ;
                  }))
            ->
add('cccomid''entity', array('class' => 'Proyecto\ComisionBundle\Entity\Comision',
                
'label' => 'Comision ',
                
'required' => true,
                
'query_builder' => function(DoctrineORMEntityRepository $er ) {
                    return 
$er->createQueryBuilder('v')
                    ->
orderBy('v.com_descripcion''ASC')
                    ;
                  }))
            ->
add('cccargoid')
            .....
        ;
    }

    public function 
setDefaultOptions(OptionsResolverInterface $resolver)
    {
        
$resolver->setDefaults(array(
            
'data_class' => 'Proyecto\ComisionBundle\Entity\Convcomis'
        
));
    }

    public function 
getName()
    {
        return 
'proyecto_comisionbundle_convcomistype';
    }

La entidad Convcomis (Asocia convencional con comision)
Código PHP:

/**
 * Conv_comis
 *
 * @ORM\Table(name="CONV_COMIS")
 * @ORM\Entity
 */
class Convcomis {
    
/**
     * @var integer
     * @ORM\Column(name="CC_ID", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     */
    
private $id;
    
    
/**
     * @var \ccconvid
     *
     * @ORM\ManyToOne(targetEntity="Convencional")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="CC_CONV_ID", referencedColumnName="CONV_ID")})
     */ 
    
private $ccconvid;
    
    
/**
     * @var \cccomid
     *
     * @ORM\ManyToOne(targetEntity="Comision")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="CC_COM_ID", referencedColumnName="COM_ID")})
     */
    
private $cccomid;
    
    
/**
     * @var \cccargoid
     *
     * @ORM\ManyToOne(targetEntity="Cargo")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="CC_CARGO_ID", referencedColumnName="CARGO_ID")})
     */
    
private $cccargoid;
    
  ...
    
    
/**
     * Set ccconvid
     * @param integer $ccconvid
     * @return Convcomis
     */
    
public function setCcconvid($ccconvid) {
        
$this->ccconvid$ccconvid;
        return 
$this;
    }
    
/**
     * Get ccconvid
     * @return string
     */
    
public function getCcconvid(){
        return 
$this->ccconvid;
    }
    
    
/**
     * Set cccomid
     * @param integer $cccomid
     * @return Convcomis
     */
    
public function setCccomid($cccomid) {
        
$this->ccconvid$cccomid;
        return 
$this;
    }
    
/**
     * Get cccomid
     * @return string
     */
    
public function getCccomid(){
        return 
$this->cccomid;
    }
    
    
    
/**
     * Set cccargoid
     * @param integer $cccargoid
     * @return Convcomis
     */
    
public function setCccargoid($cccargoid) {
        
$this->cccargoid$cccargoid;
        return 
$this;
    }
    
/**
     * Get c_carg_id
     * @return string
     */
    
public function getCccargoid(){
        return 
$this->cccargoid;
    }
    
    ...
    }

Entidad Convencional:

Código PHP:
/**
 * Convencional
 *
 * @ORM\Table(name="CONVENCIONAL")
 * @ORM\Entity
 */
class Convencional
{
    
/**
     * @var integer
     * @ORM\Column(name="CONV_ID", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     */
    
private $id;
    
    
/**
     * @var string
     * @ORM\Column(name="CONV_NOMBRE", type="string")
     */
    
private $conv_nombre;
    
    
/**
     * @var string
     * @ORM\Column(name="CONV_APELLIDO", type="string")
     */
    
private $conv_apellido;
         
    ...
    
    
    
/**
     * Get id
     * @return integer 
     */
    
public function getId(){
        return 
$this->id;
    }
    
    
/**
     * Get conv_nombre
     * @return string
     */
    
public function getConvnombre(){
        return 
$this->conv_nombre;
    }
    
/**
     * Set conv_nombre
     * @param integer @conv_nombre
     * @return Convencional
     */
    
public function setConvnombre($conv_nombre){
        return 
$this->conv_nombre=$conv_nombre;
    }
    
/**
     * Get conv_apellido
     * @return string
     */
    
public function getConvapellido(){
        return 
$this->conv_apellido;
    }
    
    
/**
     * Set conv_apellido
     * @param integer @conv_apellido
     * @return Convencional
     */
    
public function setConvapellido($conv_apellido){
        return 
$this->conv_apellido=$conv_apellido;
    }
    
...
    

En el controlador: Función Update (Que si funciona)
Código PHP:
{
        
$em $this->getDoctrine()->getManager("comision");

        
$entity $em->getRepository('ProyectoComisionBundle:Convcomis')->find($id);

        if (!
$entity) {
            throw 
$this->createNotFoundException('Unable to find Convcomis entity.');
        }

        
$deleteForm $this->createDeleteForm($id);
        
$editForm $this->createForm(new ConvcomisType(), $entity);
        
$editForm->bind($request);

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

            return 
$this->redirect($this->generateUrl('conv_comis_show', array('id' => $id)));
        }

        return 
$this->render('ProyectoComisionBundle:Conv_comis:edit.html.twig', array(
            
'entity'      => $entity,
            
'edit_form'   => $editForm->createView(),
            
'delete_form' => $deleteForm->createView(),
        ));
    } 
Función Create (da error)

Código PHP:
public function createAction(Request $request)
    {
        
$em $this->getDoctrine()->getManager("comision");
        
$entity  = new Convcomis();
        
$form $this->createForm(new ConvcomisType(), $entity);
        
$form->bind($request);
        
//$descrip = $form['ccconvid']->getData()->getConvapellido();
        //getId()
        //echo $descrip;
        //exit;

        
if ($form->isValid()) {
            
            
$entity->setCcconvid($form['ccconvid']->getData());
            
$entity->setCccomid($form['cccomid']->getData());
            
$entity->setCccargoid($form['cccargoid']->getData());
            
$entity->setCcfecdesde($form['ccfecdesde']->getData());
            
$entity->setCcfechasta($form['ccfechasta']->getData());
            
//echo $form['ccconvid']->getData()->getId();
            //exit;
            
$em->persist($entity);
            
$em->flush();

            return 
$this->redirect($this->generateUrl('conv_comis_show', array('id' => $entity->getId())));
        }

        return 
$this->render('ProyectoComisionBundle:Conv_comis:new.html.twig', array(
            
'entity' => $entity,
            
'form'   => $form->createView(),
        ));
    } 
Cita:
El error que arroja:
Found entity of type Proyecto\ComisionBundle\Entity\Comision on association Proyecto\ComisionBundle\Entity\Convcomis#ccconvid, but expecting Proyecto\ComisionBundle\Entity\Convencional
El asunto es que incluso cuando imprimo echo $form['ccconvid']->getData(); muestra los datos del Convenciona, no de la comisión como dice el error.

Es más, asocié campo a campo para descartar errores que pudieran darse al realizar el bind($request)

La verdad estoy trabada y no le encuentro la vuelta. Muchas gracias de antemano por sus respuestas.
__________________
Why can't we not be sober?
www.partitorium.com.ar