Php 反序列化一对一原则实体的JMSSerializer问题
我有两个条令实体在一对一的关系中关联。我试图反序列化从请求返回的json对象,但JMS没有设置关联的反向端。这件事我已经谈了好几个小时了,没有解决办法 代码如下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
<?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] =>
)
)