In meinem Projekt habe ich eine Entität mit createdAt
Spalte. Symfony 3 - DateTime-Objekt automatisch serialisieren
fos_rest:
disable_csrf_role: ROLE_API
param_fetcher_listener: true
body_listener: true
format_listener:
rules:
- { path: '/', fallback_format: json, prefer_extension: false }
routing_loader:
default_format: json
include_format: false
view:
view_response_listener: force
ich wählen mache aus Datebase in AcmeRepository
public function methodName()
{
$qb = $this->createQueryBuilder('d');
$s = $qb->select('d.createdAt']);
return $s->getQuery()->getArrayResult();
}
Und in Folge, in meinem Controller:
//...
class Acme
{
/**
* @var DateTime
*
* @ORM\Column(name="created_at", type="datetime")
*/
protected $createdAt;
}
Ich habe FOSRestBundle
mit Symfony Serializer aktiviert
$res = $em->getRepository('AppBundle:Acme')->methodName();
return $res;
Es ist kehrt json, aber statt [{"created_at": "2016-04-04 12:13:13"}]
ich bin dies immer:
[{"created_at":{"timezone":{"name":"UTC","location":{"country_code":"??","latitude":0,"longitude":0,"comments":""}},"offset":0,"timestamp":1459769277}]
Wie kann ich dieses Problem beheben?
Vielleicht sind Sie mit dem Symfony Serializer bekannte Lösung? –
Ein Beispiel für das deserializing Datetime-Objekt mit der Symfony-Serializer-Komponente finden Sie [hier] (http://symfony.com/doc/current/components/serializer.html#using-callbacks-to-serialize-properties-with-object -instances) im doc – Matteo
auch [this] (http://stackoverflow.com/a/33149890/2270041) scheint eine gute Lösung! – Matteo