我想知道是否有一种方法可以在继承MappedSuperClass的子类中更改(或定义内部)注释,例如,假设我们有一个类BaseUser(mappedsuperclass),一个子类User:
<?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;
}
我想要做的是直接从User类定义“Serializer”注释(但是让属性firstName在BaseUser类中定义),或者从User类覆盖Serialize的定义。
我没有找到关于这个话题的任何内容,有人已经弄清楚了吗?感谢
答案 0 :(得分:0)
您可以告诉JMS Serializer在配置中公开或不公开的内容。
应用程序/配置/ 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