Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Obtener id de una entidad que hereda de otra

1 de septiembre de 2015

Buenos dias a la comunidad (al menos ahora es de dia para mi ;-) ):

Mi problema es el siguiente:

Tengo un entidad, llamada Trabajador que hereda de otra entidad Persona, y cuando hago un findAll(), de la entidad Trabajador, me da todos sus campos menos el id, cosa que no ocurre cuando recupero los datos de otras entidades con findAll(). Es imprescindible que tenga un id que identifique al registro de la entidad Trabajador, porque en el lado cliente lo necesito para Backbone.

Adjunto codigo del Metodo Action del controlador, que como vereis es muy basico:

'public function get_trabajadoresAction(){
 
    $em = $this->getDoctrine()->getManager();
    $serializer = $this->get('serializer');
 
    $repository = $this->getDoctrine()->getRepository('ModeloBundle:Persona\Trabajador');
    $datos = $repository->findAll();
 
    $response = new response($serializer->serialize($datos, 'json'));
    $response->headers->set('Content-Type', 'application/json');
    return $response;
}'

Respuestas

#1

Según esta respuesta de StackOverflow, debes definir la propiedad id y el getter getId() en la entidad padre y quitarlos de la entidad hija.

Por otra parte, aunque en este caso ya es tarde, hasta los propios responsables de Doctrine desaconsejan usar la herencia. El motivo es que crea muchos más problemas de los que resuelve.

@javiereguiluz

1 septiembre 2015, 9:23
#2

Muchas Gracias Javier, por tu rapidisima respuesta.

Es ya la segunda o tercera vez que me salvas ;-).

Felicidades por la increible labor que haces.

Un saludo.

@Ukem_es

1 septiembre 2015, 9:32
#3

Hola Javier,

Ya que el uso de la herencia no se aconseja, ¿cuál es la mejor manera de hacer eso?

¿Usar embeddable?

Gracias

@ramiroanacona

19 septiembre 2015, 18:35
#4

@ramiroanacona la alternativa sería en efecto usar "embeddable" si hay muchos campos repetidos o incluso, repetirlos entre entidades si el número de campos no es muy grande.

@javiereguiluz

19 septiembre 2015, 18:46