我使用api完整联系服务,当我从服务中获得json数据时,我需要在DB中设置。我有实体ApiFullContact和关系OneToMany实体socialProfiles,因为在响应中有很多社交配置文件并且需要设置数据像JMS序列化器只设置ApiFullContact和设置关系实体,我尝试使用Accessor然后VirtualProperty但仍然没有设置socialProfiles实体,这个我的实体:
- (IBAction)meat0:(id)sender {
[self addMeatTopping:@"topping_Bacon" withImage:beykenMeat];
}
- (IBAction)meat1:(id)sender {
[self addMeatTopping:@"Steak" withImage:steykMeat];
}
和关系实体
* @ExclusionPolicy("all")
*/
class ApiFullContact
{
use Timestampable;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Expose()
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="status", type="integer", nullable=true)
* @Expose()
*/
protected $status;
/**
* @var string
*
* @ORM\Column(name="likelihood", type="integer", nullable=true)
* @Expose()
*/
protected $likelihood;
/**
* @var string
*
* @ORM\Column(name="requestId", type="string", nullable=true)
* @Expose()
* @SerializedName("requestId")
*/
protected $requestId;
/**
* @var \Artel\ProfileBundle\Entity\CodeProfileLinks
*
* @ORM\OneToMany(targetEntity="Artel\ProfileBundle\Entity\CodeProfileLinks", mappedBy="apiFullContact", cascade={"persist", "remove"})
* @Expose()
* @SerializedName("socialProfiles")
* @Accessor()
* @Type("Artel\ProfileBundle\Entity\CodeProfileLinks")
*/
private $socialProfiles;
在我的行动中
class CodeProfileLinks
{
use Timestampable;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="url", type="string", nullable=true)
* @Expose()
*/
private $url;
/**
* @var string
*
* @ORM\Column(name="type", type="string", nullable=true)
* @Expose()
*/
private $type;
/**
* @var string
*
* @ORM\Column(name="username", type="string", length=255, nullable=true)
* @Expose()
*/
protected $username;
并需要设置
来自服务的回复:
$apiFullContact = $this->get('serializer')->deserialize(
$data,
'Artel\ProfileBundle\Entity\ApiFullContact',
'json'
);
以及如何设置实体ApiFullContact与关系实体socialProfiles数据,如何设置关系实体???