Używamy Symfony2 do tworzenia interfejsu API. Aktualizując rekord, spodziewamy się, że dane wejściowe JSON będą reprezentować zaktualizowaną serializowaną encję. Dane JSON nie będą zawierać niektórych pól (na przykład CreateAt powinno być ustawione tylko raz, gdy jednostka jest tworzona - i nigdy nie jest aktualizowana). Na przykład, tutaj jest prośba przykład JSON PUT:Jak zaktualizować encję Doktryny z serializowanego JSON?
{"id":"1","name":"anyname","description":"anydescription"}
Oto kod PHP na kontrolerze, który powinien zaktualizować podmiot zgodnie z JSON powyżej (używamy JMS serializer Bundle):
$supplier = $serializer->deserialize(
$this->get('request')->getContent(),
'WhateverEntity',
'json'
);
EntityManger rozumie (poprawnie), że jest to żądanie aktualizacji (w rzeczywistości zapytanie SELECT jest niejawnie wyzwalane). EntityManager również domyśla się (niepoprawnie), że właściwość CreatedAt powinna mieć wartość NULL - zamiast tego powinna ona zachować poprzednią.
Jak naprawić ten problem?