Estoy tratando de guardar una Entidad como un archivo json. La clase de entidad también incluye un campo de fecha y hora:
class Ear { ... /** * @ORM\Column(type="date") */ private $date; ... }Luego creo una nueva oreja:
$earLine = new Ear(); $earLine->setDate(new \DateTime());Ahora simplemente pensaría que puedo normalizar y serializar este objeto:
$encoders = [new JsonEncoder()]; $normalizers = [new DateTimeNormalizer(), new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); $json = $serializer->serialize($earLine, 'json');que funciona bien El json se ve así:
{ "id": null, "date": "2021-05-31T00:00:00+02:00", ... }Sin embargo, al intentar deserializar, no logra desnormalizar la fecha y hora.
$encoders = [new JsonEncoder()]; $normalizers = [new DateTimeNormalizer(), new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); dd($serializer->deserialize($json, Ear::class, 'json')); con el error Failed to denormalize attribute "date" value for class "App\Entity\Ear": Expected argument of type "DateTimeInterface", "string" given at property path "date".
Leo los documentos arriba y abajo y busco stackoverflow. Pero falla sin razón aparente, al menos no para mí.
Usando Symfony 5.3.