我想知道是否有一种方法可以更改(或在内部定义)继承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