0

Ich benutze Symfony 2.8 mit JMS Serializer und wenn ich Deserializer-Methode verwenden, wird der Konstruktor meiner Entitätsklasse nicht aufgerufen. Sehen Sie meinen Code:Jms Serializer rufen Sie nicht Konstruktor

mein service.yml

jms_serializer.unserialize_object_constructor: 
    class: AppBundle\Serializer\ObjectConstructor 

mein ObjectConstructor

<?php 

namespace AppBundle\Serializer; 

use JMS\Serializer\VisitorInterface; 
use JMS\Serializer\Metadata\ClassMetadata; 
use JMS\Serializer\DeserializationContext; 
use JMS\Serializer\Construction\ObjectConstructorInterface; 

class ObjectConstructor implements ObjectConstructorInterface 
{ 

    /** 
    * {@inheritdoc} 
    */ 
    public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) { 

     $className = $metadata->name; 

     return new $className(); 
    } 
} 

und Konstruktor meiner Klasse:

public function __construct() { 

    $this->dateTime = new \DateTime(); 
} 

Jede Idee?

Antwort

0

Sie sollten

jms_serializer.object_constructor: 
    alias: your_service_id 
+0

nun wie so Ihre benutzerdefinierten Konstruktor Service alias, wenn ich das Konstrukt Methode in ObjectConstructor hinzufügen, aber die Methode Konstrukt der Klasse namens ObjectConstructor nicht. –

Verwandte Themen