En versiones anteriores de Symfony, usted solía ser capaz de construir nuevos objetos dentro de un objeto de datos al extender una clase de modelo con una subclase extendida.¿Cómo extiendes una entidad en Symfony2 como solías poder en Symfony 1?
Por ejemplo, tenía un modelo de cuestionario que tenía una tabla de resultados. Esa tabla de resultados tenía una clase de modelo Result.php que solía establecer y obtener los resultados a través de Doctrine. Luego utilicé la subclase del modelo ResultPeer.php para agregar una nueva función al objeto Result que tomó el resultado y, dependiendo de un conjunto fijo de umbrales, se calculó una puntuación y el color correspondiente.
En la nueva versión de Symfony2 con Doctrine2, estoy luchando por encontrar la mejor manera de hacerlo. Al crear una entidad, solo puedo encontrar en la documentación la capacidad de agregar objetos en función de las relaciones de la estructura de datos.
Miré los repositorios de entidades, pero eso no parece extender o agregar funcionalidad a un objeto original. Parece recuperar objetos de datos basados en consultas que son más complejas que las funciones de consulta estándar.
También miré servicios, que puedo usar para recopilar el objeto y luego usar el objeto crear una nueva matriz que incluye este objeto y los datos recién creados, pero esto no parece correcto o seguir la filosofía de que Symfony se trata de.
¿Alguien sabe cómo se pueden agregar funciones a un objeto de datos existente. Lo encontré realmente útil en la versión anterior de Symfony, pero no puedo encontrar la alternativa en la nueva versión de Symfony2.
Eso es brillante. Sabía que debía haber sido posible. Gracias Matt. –
Supongamos que tengo 'BaseAuditableEntity.php' con la columna' lastName' con nullable = false, y luego al extender la clase a 'User.php'. Necesito cambiar el coulumn anterior. Lastname accept null values (nullable = true). ¿Podrías por favor ayudarme, cómo hacerlo? –
En su clase 'User.php', intente redirigir la propiedad' lastName' y la anotación asociada a ella.Tal vez esto anule lo establecido previamente en la entidad base. Si no funciona, me temo que no puedo ayudar más. Intenta preguntar en la lista de correo de doctrine2. Si encuentra una solución, no dude en informarla aquí. – Matt