symfony - Doctrine MappedSuperClass,覆盖自定义注解

标签 symfony doctrine-orm mappedsuperclass

我想知道是否有办法在继承 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/

相关文章:

php - 如何授予对PaaS(Symfony CLoud)目录的访问权限?

mongodb - Symfony2 MongoDB 原则继承

java - "Impossible to execute Save action: org.hibernate.exception.DataException: could not execute statement"使用 OpenXava?

java - EclipseLink @MappedSuperclass 和泛型

php - Symfony2 登录 - 错误凭证

css - 为什么 symfony 表单的复选框看起来很奇怪?

php - 使用 Symfony2 处理统计数据

symfony - 我如何知道 OneToMany 关系已更改?

php - 将 Symfony 实体导出为 CSV

php - 如何在 Doctrine 2 中对 native 查询进行分页?