Chúng tôi đang sử dụng Symfony2 để tạo API. Khi cập nhật một bản ghi, chúng tôi mong đợi đầu vào JSON đại diện cho một thực thể được cập nhật theo thứ tự. Dữ liệu JSON sẽ không chứa một số trường (ví dụ, CreatedAt chỉ nên được thiết lập một lần khi thực thể được tạo ra - và không bao giờ được cập nhật). Ví dụ, đây là một yêu cầu ví dụ JSON PUT:Làm thế nào để cập nhật một thực thể Doctrine từ một JSON được tuần tự hóa?
{"id":"1","name":"anyname","description":"anydescription"}
Đây là mã PHP trên Controller mà nên cập nhật các đối tượng theo quy định của JSON trên (chúng tôi đang sử dụng JMS serializer Bundle):
$supplier = $serializer->deserialize(
$this->get('request')->getContent(),
'WhateverEntity',
'json'
);
EntityManger hiểu (chính xác) rằng đây là một yêu cầu cập nhật (trên thực tế, một truy vấn SELECT được ngầm kích hoạt). EntityManager cũng đoán (không chính xác) thuộc tính CreatedAt nên được NULL hóa - thay vào đó hãy giữ thuộc tính trước đó.
Cách khắc phục vấn đề này?