2015-12-13 140 views
3

我想知道是否有方法來改變(或定義內部)註釋在繼承MappedSuperClass的子類中,例如,假設我們有一個類BaseUser(mappedSuperclass),一個子類用戶:Doctrine MappedSuperClass,覆蓋自定義註釋

<?php 
... 
use Doctrine\ORM\Mapping as ORM; 
use JMS\Serializer\Annotation as Serializer; 
... 


/** 
* @ORM\MappedSuperclass 
*/ 
class BaseUser 
{ 
    /** 
    * @ORM\Column(name="firstname", type="string", length=100) 
    * @Serializer\SerializedName("First_Name") 
    * @Serializer\Expose 
    * @Serializer\Type("string") 
    * @Serializer\Groups({"Basic"}) 
    */ 
    protected $firstName; 
} 

/** 
* @ORM\Entity 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @ORM\Column(name="sign", type="string", length=50) 
    */ 
    private $sign; 
} 

我想能做的就是確定從直接用戶類的「串行」的註釋(但讓物業的firstName在BaseUser類中定義),或者,從覆蓋序列化的定義用戶類。

我沒有發現任何關於這個話題,有人已經弄明白了嗎?謝謝

回答

0

您可以告訴JMS序列化程序在您的配置中公開或不公開。

應用程序/配置/ config.yml:

jms_serializer: 
metadata: 
    directories: 
     - { path: %kernel.root_dir%/Resources/FOSUserBundle/serializer, namespace_prefix: 'FOS\UserBundle' } 

應用程序/資源/ FOSUserBundle /串行器/ Model.User.yml:

FOS\UserBundle\Model\User: 
exclusion_policy: ALL 
properties: 
    id: 
     expose: true 
    email: 
     expose: true 
    username: 
     expose: true 
    enabled: 
     expose: true 
    locked: 
     expose: true 

來源:https://github.com/schmittjoh/JMSSerializerBundle/issues/78#issuecomment-31831236