Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

235
Vistas
Symfony Serializer no puede manejar Doctrine Id al deserializar

Estoy tratando de serializar y luego deserializar una Entidad Doctrine en Symfony 3. Bueno, por supuesto, no funciona para la propiedad id porque no hay acceso público a la id por defecto. Entonces, ¿cuál es la mejor opción para eso?

  1. Agregue un método setId() , pero probablemente sea una mala idea y socave el comportamiento predeterminado de la doctrina.

  2. Use un Normalizer personalizado que use la reflexión para construir el objeto simplemente accediendo al campo.

  3. Proporcione a la entidad alguna funcionalidad personalizada toArray() , fromArray() y use los valores de la matriz en lugar del objeto en la serialización.

¿O me estoy perdiendo algo? ¿Ya hay algo integrado en Symfony para ese caso de uso?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar la opción object_to_populate para hacer eso:

 // retrieve entity to update from DB $oldProduct = $this->getDoctrine()->getRepository(Product::class)->find($request->request->get('id')); $product = $this->get('serializer')->deserialize($request->getContent(), Product::class, 'json', array('object_to_populate' => $oldProduct)); $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($product); $entityManager->flush();

Consulte la documentación de Deserializar en un objeto existente.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda