Me gustaría extender clases Entity \ Base, ¿cómo hacer esto en Doctrine 2.1? Mi investigación demostró que cada vez que alguien encuentra el problema al hacer esto, cambia a Doctrine 1.2:) n Estoy usando la configuración yamlDoctrina: extendiendo la clase de entidad
Respuesta
Doctrine 2.X Las entidades funcionan como POPO (objetos antiguos simples de PHP). Para lograr una extensión correcta, Doctrine le obliga a utilizar un concepto de JPA denominado Superclase mapeado. La idea es bastante simple. Siempre que desee tener una clase base y desee que sus entidades se extiendan desde ella (no estoy hablando de herencia a nivel de base de datos), todo lo que necesita hacer es crear su clase base como MappedSuperClass.
Aquí es un ejemplo: http://www.doctrine-project.org/docs/orm/2.1/en/reference/inheritance-mapping.html#mapped-superclasses
Gracias
He hecho algo similar, gracias por el esfuerzo, aunque el problema se ha solucionado hace unos días, marcaré su respuesta como correcta – mkk
Podrías haber publicado la solución, ya sabes. El propósito de esta comunidad es ayudarse unos a otros. –
@NikolaPetkanski tiene el 100% de razón, y puede observar que respondo mi propia pregunta si encuentro una solución. – mkk
Aquí la solución de enlace Guilherme Blanco. Me gustaría tener una solución publicada en lugar de un enlace que finalmente ya no podría funcionar en el futuro:
<?php
/** @MappedSuperclass */
class MappedSuperclassBase
{
/** @Column(type="integer") */
protected $mapped1;
/** @Column(type="string") */
protected $mapped2;
/**
* @OneToOne(targetEntity="MappedSuperclassRelated1")
* @JoinColumn(name="related1_id", referencedColumnName="id")
*/
protected $mappedRelated1;
// ... more fields and methods
}
/** @Entity */
class EntitySubClass extends MappedSuperclassBase
{
/** @Id @Column(type="integer") */
private $id;
/** @Column(type="string") */
private $name;
// ... more fields and methods
}
- 1. Doctrina 2.1 - Mapa entidad a varias tablas
- 2. Entidad existe la validación de Zend Framework 2 con 2 Doctrina usando inputfilter en la entidad
- 3. Autenticación Symfony 2 con (doctrina) Entidad
- 4. Doctrina 2: Ahorro de la entidad en relación compleja
- 5. Symfony2 subconsulta dentro Doctrina gestor de la entidad
- 6. Scala Extendiendo Clase abstracta paramétrica
- 7. php clase abstracta extendiendo otra clase abstracta
- 8. entidad de doctrina eliminar vs eliminar consulta, comparación de rendimiento
- 9. Java: Extendiendo clase en tiempo de ejecución
- 10. C#: Extendiendo desde más de 1 clase
- 11. ¿Es posible construir una entidad JPA extendiendo un POJO?
- 12. EntityNotFoundException en la clase proxy proxy doctrina 2
- 13. ¿Está extendiendo una clase singleton incorrecta?
- 14. Extendiendo clase no instanciable en java
- 15. java, extendiendo la clase con el constructor de la clase principal tiene el parámetro
- 16. registros de conteo Doctrina de la tabla
- 17. ¿Cómo puedo hacer consultas de asociaciones de entidades complejas en la doctrina 2? (entidad virtual)
- 18. Extendiendo el método de eliminación de NSManagedObject
- 19. usando la doctrina con codeigniter
- 20. Doctrina 2 Obtener el nombre de clase real de la clase proxy
- 21. Obtener nombre de la entidad de la clase Object
- 22. Doctrina 2 - herencia simple mesa - propiedad de acceso de entidad secundaria
- 23. Android: cómo hacer que findViewById (R.id.xxx) trabaje en una clase heredando/extendiendo desde la clase View?
- 24. Extendiendo la validación de formulario en Codeigniter
- 25. Extendiendo System.Convert
- 26. Extendiendo singletons en PHP
- 27. Extendiendo ImageMagickNet
- 28. ¿Extendiendo una enumeración?
- 29. Netbeans - clase de entidad generadora de la base de datos
- 30. nombre de la tabla de clase de entidad
¿por qué desea ampliarlo? – jere
Me gustaría crear una nueva clase que amplíe la base, algo así como User extends UserBase. Actualmente, todas las clases base están en Entidades/Base así que me gustaría crear nuevas clases en Entidades y extenderán Entidades/Clases base – mkk
@jaro Me gustaría seguir el patrón de Doctrine 1.2 que tengo clases base y normales. Extiendo clases base para poder escribir mis propios métodos personalizados. El problema es que las clases base se generan automáticamente y no quiero perder el código cada vez que cambio algo en el modelo. – mkk