Php 反序列化一对一原则实体的JMSSerializer问题

Php 反序列化一对一原则实体的JMSSerializer问题,php,doctrine,jmsserializerbundle,Php,Doctrine,Jmsserializerbundle,我有两个条令实体在一对一的关系中关联。我试图反序列化从请求返回的json对象,但JMS没有设置关联的反向端。这件事我已经谈了好几个小时了,没有解决办法 代码如下 <?php namespace MyNamspace\Entity; //Annotations namespaces use JMS\SerializerBundle\Annotation as JMS; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(reposito

我有两个条令实体在一对一的关系中关联。我试图反序列化从请求返回的json对象,但JMS没有设置关联的反向端。这件事我已经谈了好几个小时了,没有解决办法

代码如下

<?php
namespace MyNamspace\Entity;

//Annotations namespaces
use JMS\SerializerBundle\Annotation as JMS;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="MyNamspace\Repository\Policy")
 * @ORM\Table(name="policies")
 * @JMS\ExclusionPolicy("all")
 */
class Policy
{
    /**
     * [$id description]
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @JMS\Expose

     * @JMS\AccessType("public_method")
     */
    protected $id;

    /**
     * [$name description]
     * @var string
     * @ORM\Column(type="string", length=360)
     * @JMS\Expose
     * @JMS\AccessType("public_method")
     * @JMS\Type("string")
     */
    protected $name;

    /**
     * [$policydata description]
     *
     * @ORM\OneToOne(targetEntity="PolicyData",mappedBy="policy",cascade={"persist","remove"})
     * @JMS\Type("MyNamspace\Entity\PolicyData")
     * @JMS\AccessType("public_method")
     * @JMS\Expose
     */
    protected $policydata;
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    public function getId()
    {
        return $this->id;
    }

    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    public function getName()
    {
        return $this->name;
    }
public function setPolicyData(\MyNamspace\Entity\PolicyData $policydata)
    {
        $this->policydata = $policydata;
        return $this;
    }

    public function getPolicyData(){
        return $this->policydata;
    }
假设正在序列化的数据为

{
    "name": "Policy1",
    "policydata": [
        {
            "effect": "1",
            "startdate": "2012-10-21T00:00:00+0100"
        }
    ]
}
序列化后我得到的是这个

MyNamspace\Entity\Policy Object
(
    [id:protected] => 
    [name:protected] => Policy1
    [policydata:protected] => MyNamspace\Entity\PolicyData Object
        (
            [id:protected] => 
            [effect:protected] => 
            [policy:protected] => 
            [startdate:protected] => 
        )

)

可以看出,虽然主策略对象是反序列化的,但PolicyData对象是空的。

我也有同样的问题。你解决过吗?
{
    "name": "Policy1",
    "policydata": [
        {
            "effect": "1",
            "startdate": "2012-10-21T00:00:00+0100"
        }
    ]
}
MyNamspace\Entity\Policy Object
(
    [id:protected] => 
    [name:protected] => Policy1
    [policydata:protected] => MyNamspace\Entity\PolicyData Object
        (
            [id:protected] => 
            [effect:protected] => 
            [policy:protected] => 
            [startdate:protected] => 
        )

)