2011-09-23 18 views
7

tengo el siguiente código que muestra todas las páginas principales disponibles que se pueden utilizar al agregar páginas secundarias en mi proyecto:cómo especificar qué valor se pasa mediante un campo de formulario de elección en Symfony2

 $builder->add('subtocontentid', 
      'entity', 
      array(
       'class'=>'Shout\AdminBundle\Entity\Content', 
       'property'=>'title', 
       'query_builder' => function (EntityRepository $repository) 
       { 
        return $repository->createQueryBuilder('s') 
          ->where('s.mainpage = ?1') 
          ->setParameter(1, '1') 
          ->add('orderBy', 's.created ASC'); 
       } 
     )); 

En el forma, funciona bien. Muestra el título apropiado de la página principal. Sin embargo, cuando se pasa el formulario a la base de datos, la ID de página se pasa a la base de datos. Esta no es la forma en que quiero que funcione, sino que necesito pasar una babosa a la base de datos.

Entiendo que el código que estoy usando recupera todos los campos en la base de datos. ¿Cómo podría seleccionar solo el campo Título y el campo Slug, y luego en el formulario pasar el campo Slug a la base de datos?

Saludos

Respuesta

2

Usted tendrá que cambiar el transformador utilizado por EntityType, y que no es el ID se pasa a la base de datos es la entidad que el transformador tiene el id y mira hacia arriba la entidad en su lista. Entonces, en su caso sería una instancia de Shout\AdminBundle\Entity\Content

Cuestiones relacionadas