【问题标题】:Exposing an entity using JMSSerializerBundle and FOSUserBundle使用 JMSSerializerBundle 和 FOSUserBundle 公开实体
【发布时间】:2015-12-09 05:14:23
【问题描述】:

[使用 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

UsernameEmailRoles 都暴露得很好。 PersonalDetails 有它自己的 @Expose 注释,当仅序列化 PersonalDetails 结果时,它们都可以正常工作。我错过了什么?

如何使用此配置正确公开PersonalDetails 实体?

【问题讨论】:

    标签: symfony fosuserbundle jmsserializerbundle


    【解决方案1】:

    哦!感觉自己像个白痴。我告诉FOSUserBundleUser 实体公开PersonalDetails,但我应该告诉AppBundle\Entity\User 公开。

    固定代码:

        use JMS\Serializer\Annotation\Expose 
    
        /** 
          *@Expose()
          *@ORM\OneToOne(targetEntity="PersonalDetails", mappedBy="user", cascade=   {"persist","remove"}) */
        protected $personalDetails;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      相关资源
      最近更新 更多