En symfony 2.0, ¿cómo crear una lista desplegable utilizando la asociación de uno a uno en la forma? ¿Pueden poner buen ejemplo, por favor?Asociación uno a uno en la forma?
Respuesta
Voy a tratar de responder a su pregunta de la manera en que lo entiendo. Supongamos que tengo un objeto Faculty
vinculado a un solo objeto University
. Entonces, en la forma utilizada para crear o editar una facultad, muestro un cuadro combinado de toda la universidad en la base de datos y el usuario elige uno entre ellos. Hay un tipo de campo especial de Symfony que hace exactamente esto: el tipo de entidad. A continuación se muestra el código del método buildForm
que yo uso en mi objeto FacultyType
utilizado para crear la forma de la facultad:
// Application\AcmeBundle\Form\Type\FacultyType
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name');
$builder->add('university', 'entity', array(
// The class of the entity used as a combo box item
'class' => 'AcmeBundle:University',
// The property of the entity displaying the entity as text
'property' => 'name',
// The query builder used to populate the combo box, accepts
// a QueryBuilder object or a \Closure like below
'query_builder' => function(EntityRepository $repository) {
// This will return a query builder selecting all universities
return $repository->createQueryBuilder('u');
}
));
}
Nota: Hay otras propiedades que se pueden establecer para el tipo de campo entidad, los invito a tomar un vistazo a este page para obtener más información al respecto.
Rendered, esto mostrará un cuadro combinado con todas las universidades que he establecido en la base de datos. Cuando el usuario guarda el formulario, la universidad elegida se asigna al objeto de la facultad vinculado al formulario a través de un colocador. Probablemente podría renderizar una lista desplegable en lugar de un cuadro combinado. Si necesita seleccionar varias entidades, la opción 'multiple'
de la entidad de tipo de campo podría ser útil.
Dicho esto, el ejemplo que mostré no es una relación de uno a uno, sino más bien uno de varios para el objeto Faculty
y uno de muchos para el objeto University
. Una relación One-to-One sería algo más parecido a una relación donde University
tiene un único Address
. En este caso, un cuadro combinado no sería útil ya que la universidad solo puede tener una dirección, por lo que una subforma sería más apropiada. Si tiene muchas direcciones, se convierte en una relación Uno a Muchos como la relación entre la universidad y sus facultades.
No estoy seguro de si esto responderá a su pregunta correctamente, pero espero que lo conduzca a una solución final.
Saludos, Matt
Es necesario utilizar el tipo de campo en la entidad Symfony2. Un buen ejemplo se encuentra en http://symfony.com/doc/current/reference/forms/types/entity.html
- 1. Grails: encontrar por asociación uno-a-muchos con la cadena
- 2. NHibernate uno-a-uno vs 2 muchos-a-uno
- 3. Relación uno-a-uno genérica en Django
- 4. Hibernate asociación de entidad uno a uno con PK compartida entre 3 clases
- 5. relación uno a uno en MySQL
- 6. Asignación uno a uno opcional en Hibernate
- 7. Agregar caracteres uno a uno a TMemo
- 8. Fluido NHibernate y uno a uno
- 9. sqlalchemy: relación uno a uno con declaración
- 10. uno-a-uno con fluidez nhibernate?
- 11. Relación JPA Hibernate uno a uno
- 12. Uno a cero/uno la relación (Código primero)
- 13. CoreData - modelada relación uno-a-muchos salga como uno-a-uno
- 14. NHibernate, asignación de uno a uno, inserción en cascada
- 15. nhibernate generar combinación externa izquierda en entidad uno a uno
- 16. La asociación muchos-a-uno de Doctrine2 no usará la consulta JOIN
- 17. Modelado de relaciones uno a cero o uno (cardinalidad Z)
- 18. Crear automáticamente un formulario usando entidad (relación uno a uno)
- 19. Grails/GORM: creando una relación opcional uno a uno
- 20. ¿Por qué se recomienda evitar la asociación unidireccional de uno a muchos en una clave externa?
- 21. Adquisición de íconos: haga uno, compre uno o encuentre uno
- 22. Problema con la ingeniería inversa una asociación unidireccional muchos a uno con herramientas de hibernación
- 23. Hibernate Mapeo uno a uno con interfaz. Necesito consejo
- 24. Implementación de una relación uno a cero o uno en SQL Server
- 25. Problemas de asignación uno a uno de Entity Framework
- 26. Datos de ahorro de Entity Framework en asociaciones uno a uno
- 27. ¿Cómo evitar que Doctrine cargue perezosamente relaciones uno a uno?
- 28. HQL con cheque nulo para uno-a-uno relación
- 29. entidad Código Marco Primera relación uno a uno
- 30. Fluidez NHibernate: ¿Cómo crear mapeo bidireccional uno a uno?
¿Puede proporcionar más detalles sobre lo que quiere? – Riley
Quiero crear un cuadro combinado de la tabla asociada de uno a uno. – Zeck