我想知道是否有办法在继承 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 定义。
我没有找到有关此主题的任何内容,有人已经弄清楚了吗?谢谢
最佳答案
您可以告诉 JMS Serializer 在您的配置中公开或不公开什么。
应用程序/配置/config.yml:
jms_serializer:
metadata:
directories:
- { path: %kernel.root_dir%/Resources/FOSUserBundle/serializer, namespace_prefix: 'FOS\UserBundle' }
应用程序/资源/FOSUserBundle/serializer/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
关于symfony - Doctrine MappedSuperClass,覆盖自定义注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251267/