Hola que tal? Les hago una consulta, estoy tratando de crear un <select>
con opciones agrupadas para barrios. Es decir:
<select name="" id=""> <optgroup label="Córdoba"> <option value="Villa Carlos Paz"></option> <option value="San Francisco"></option> <option value="Unquillo"></option> </optgroup> <optgroup label="Buenos Aires"> <option value="Palermo"></option> <option value="Mitre"></option> </optgroup> </select>
Leí que el cookbook dice que hay que usar las opciones:
choices
group_by
Pero la verdad no se que estoy haciendo mal, porque me sale el error:
Attempted to call function "add" from namespace "EM\AdministracionBundle\Form".
Mi código es:
$builder ->add('nombre') ->add('descripcion') //->add('ciudad') -add('ciudad', 'entity', array( 'class'=>'AdministracionBundle:Ciudad', 'choices' => $this->getCiudadesPorProvincia(), 'group_by'=> 'ciudad.getProvincia.nombre', // acá no se muy bien como especificar que sea el nombre de la provincia. 'empty_value' => 'Seleccione una Ciudad' ))
El método getCiudadesPorProvincia() devuelve:
array (size=25) 'Buenos Aires' => object(Doctrine\ORM\PersistentCollection)[794] ... 'Córdoba' => object(Doctrine\ORM\PersistentCollection)[794] ...
La relación entre mis entidades es:
País 1 -> 1..* Provincia 1 -> 1..* Ciudades 1 -> 1..* Barrios
Respuestas
No se si es un error al copiar+pegar el código, pero esta línea está mal:
-add('ciudad', 'entity', array(
Debería ser:
->add('ciudad', 'entity', array(
@javiereguiluz
Estoy retomando este tema y sigo tendiendo problemas! :(
¿Cuál podría ser la sintaxys correcta para tener un select con option group?
Ya corregí el "->add"
el código que tengo es:
$builder ->add('nombre') ->add('descripcion') ->add('ciudad', 'entity', array( 'class'=>'GeografiaBundle:Ciudad', 'choices' => $this->getCiudadesPorProvincia(), 'group_by'=>'ciudad.provincia.nombre' ))
Cuando cargo mi ABM de barrios, symfony me devuelve:
Entities passed to the choice field must be managed. Maybe persist them in the entity manager?
No logro entender bien el error y como solucionarlo! :S
Estoy haciendo algo mal ? cómo debería ser ?
Gracias!
@MrXXX0323
Quizás puedes echar un vistazo a los issues del repositorio de Symfony porque se que se han reportado muchos errores relacionados con los "choice": https://github.com/symfony/symfony/issues?utf8=%E2%9C%93&q=is%3Aissue+choice
Además, aunque no se si te afecta en tu caso, en Symfony 2.7 el tipo choice
ha cambiado por completo: New in Symfony 2.7: Choice form type refactorization
@javiereguiluz