Symfony JMSSerializer创建对象实体和关系实体和集合

时间:2016-02-28 15:54:11

标签: php symfony doctrine-orm fosrestbundle jmsserializerbundle

我使用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数据,如何设置关系实体???

0 个答案:

没有答案