使用 JMSSerializerBundle 和 FOSUserBundle 公开实体
Exposing an entity using JMSSerializerBundle and FOSUserBundle
[使用 Symfony2、JMSSerializerBundle、FOSUserBundle、Doctrine ORM]
User
实体与 PersonalDetails
实体相关联。
使用 JMSSerializer 我无法在序列化 User
.
时暴露 PersonalDetails
User
实体
/* AppBundle\Entity\User.php
/** @ORM\OneToOne(targetEntity="PersonalDetails", mappedBy="user", cascade={"persist","remove"}) */
protected $personalDetails;
序列化器配置
# app/serializer/FOSUserBundle/Model.User.yml
FOS\UserBundle\Model\User:
exclusion_policy: ALL
properties:
username:
expose: true
email:
expose: true
roles:
expose: true
personalDetails:
expose: true
Username
、Email
和 Roles
都暴露得很好。 PersonalDetails
有它自己的 @Expose
注释,当仅序列化 PersonalDetails
结果时,它们都可以正常工作。我错过了什么?
如何使用此配置正确公开 PersonalDetails
实体?
哎呀!感觉像个白痴。我告诉 FOSUserBundle
的 User
实体公开 PersonalDetails
,但我应该告诉 AppBundle\Entity\User
公开。
固定码:
use JMS\Serializer\Annotation\Expose
/**
*@Expose()
*@ORM\OneToOne(targetEntity="PersonalDetails", mappedBy="user", cascade= {"persist","remove"}) */
protected $personalDetails;
[使用 Symfony2、JMSSerializerBundle、FOSUserBundle、Doctrine ORM]
User
实体与 PersonalDetails
实体相关联。
使用 JMSSerializer 我无法在序列化 User
.
PersonalDetails
User
实体
/* AppBundle\Entity\User.php
/** @ORM\OneToOne(targetEntity="PersonalDetails", mappedBy="user", cascade={"persist","remove"}) */
protected $personalDetails;
序列化器配置
# app/serializer/FOSUserBundle/Model.User.yml
FOS\UserBundle\Model\User:
exclusion_policy: ALL
properties:
username:
expose: true
email:
expose: true
roles:
expose: true
personalDetails:
expose: true
Username
、Email
和 Roles
都暴露得很好。 PersonalDetails
有它自己的 @Expose
注释,当仅序列化 PersonalDetails
结果时,它们都可以正常工作。我错过了什么?
如何使用此配置正确公开 PersonalDetails
实体?
哎呀!感觉像个白痴。我告诉 FOSUserBundle
的 User
实体公开 PersonalDetails
,但我应该告诉 AppBundle\Entity\User
公开。
固定码:
use JMS\Serializer\Annotation\Expose
/**
*@Expose()
*@ORM\OneToOne(targetEntity="PersonalDetails", mappedBy="user", cascade= {"persist","remove"}) */
protected $personalDetails;