2015-12-13 4 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; 
} 

То, что я хотел бы сделать, это либо определение «Serializer» аннотаций из класса User напрямую (но пусть свойство ПгвЬЫате быть определен в классе BaseUser), OR, отменяя определение Serialize из класс пользователя.

Я ничего не нашел по этой теме, кто-то уже понял это? Спасибо

ответ

0

Вы можете указать JMS Serializer, что выставлять или нет в вашей конфигурации.

приложение/Config/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

 Смежные вопросы

  • Нет связанных вопросов^_^