Doctrine MappedSuperClass,覆盖自定义注释



我想知道是否有一种方法可以更改(或在内部定义)继承MappedSuperClass的子类中的注释,例如,假设我们有一个类BaseUser(MappedSuperClass),一个子类User:

<?php
...
use DoctrineORMMapping as ORM;
use JMSSerializerAnnotation as Serializer;
...

/**
* @ORMMappedSuperclass 
*/
class BaseUser
{
    /**
     * @ORMColumn(name="firstname", type="string", length=100)
     * @SerializerSerializedName("First_Name")
     * @SerializerExpose
     * @SerializerType("string")
     * @SerializerGroups({"Basic"})
     */
    protected $firstName;
}
/**
* @ORMEntity
*/
class User extends BaseUser
{
    /**
     * @ORMColumn(name="sign", type="string", length=50)
     */
    private $sign;
}

我想做的是直接从User类定义"Serializer"注释(但让属性firstName在BaseUser类中定义),或者从User类重写Serialize的定义。

我没有发现任何关于这个话题的东西,有人已经想明白了吗?感谢

您可以告诉JMS序列化程序在配置中公开或不公开什么。

app/config/config.yml:

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

app/Resources/FOSUserBundle/serializer/Model.User.yml:

FOSUserBundleModelUser:
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

相关内容

  • 没有找到相关文章

最新更新