2017-11-10 25 views
0

Symfony 2.8을 JMS Serializer와 함께 사용하고 deserializer 메소드를 사용할 때 엔티티 클래스의 생성자가 호출되지 않습니다. 내 코드를 참조하십시오Jms Serializer가 생성자를 호출하지 않습니다

내 service.yml

jms_serializer.unserialize_object_constructor: 
    class: AppBundle\Serializer\ObjectConstructor 

내 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(); 
    } 
} 

내 클래스의 생성자 :

public function __construct() { 

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

어떤 생각? 내가라고 ObjectConstructor의 구조 방법이지만 클래스 ObjectConstructor하지 않는 방법의 구조를 추가하는 경우

답변

0

당신은 이제 너무

jms_serializer.object_constructor: 
    alias: your_service_id 
+0

같은 사용자 정의 생성자 서비스의 별명을 지정해야합니다. –