Symfony fosrestBundle和SonataUserBundle新油田系列化

Symfony fosrestBundle和SonataUserBundle新油田系列化,symfony,fosuserbundle,fosrestbundle,jmsserializerbundle,sonata-user-bundle,Symfony,Fosuserbundle,Fosrestbundle,Jmsserializerbundle,Sonata User Bundle,我正在使用在src/Application/Sonata/UserBundle下扩展的sonatausbundle,并在src/Application/Sonata/UserBundle/Resources/config/doctor/User.orm.xml中添加了一些额外的字段 <entity name="Application\Sonata\UserBundle\Entity\User" table="ez_user"> <id name="id" column

我正在使用在src/Application/Sonata/UserBundle下扩展的sonatausbundle,并在src/Application/Sonata/UserBundle/Resources/config/doctor/User.orm.xml中添加了一些额外的字段

<entity name="Application\Sonata\UserBundle\Entity\User" table="ez_user">

    <id name="id" column="id" type="integer">
        <generator strategy="AUTO" />
    </id>

    <many-to-many field="groups" target-entity="Application\Sonata\UserBundle\Entity\Group">
    <join-table name="ez_user_group">
        <join-columns>
            <join-column name="user_id" referenced-column-name="id"/>
        </join-columns>
        <inverse-join-columns>
            <join-column name="group_id" referenced-column-name="id"/>
        </inverse-join-columns>
    </join-table>
    </many-to-many>

    <many-to-one field="media" target-entity="Application\Sonata\MediaBundle\Entity\Media">
        <cascade>
            <cascade-all/>
        </cascade>
    </many-to-one>
    <field name="companyName" column="company_name" type="string" length="255" nullable="true" />

    <field name="companyPhone" column="company_phone" type="integer" nullable="true" />


</entity>
app/serializer/FOSUserBundle/Model.User.xml:

<serializer>
<class name="FOS\UserBundle\Model\User" exclusion-policy="all" xml-root-name="user">

    <property name="username"            type="string"   expose="true" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="usernameCanonical"   type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="email"               type="string"   expose="true" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="emailCanonical"      type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="enabled"             type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="plainPassword"       type="string"   expose="false" since-version="1.0" groups="sonata_api_write" />
    <property name="lastLogin"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="locked"              type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="expired"             type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="expiresAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="confirmationToken"   type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="passwordRequestedAt" type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="roles"               type="array"    expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="credentialsExpired"  type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="credentialsExpireAt" type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="gender"              expose="false" />
    <property name="createdAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="updatedAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />

</class>

配置中的jms部分用于从api返回数据中隐藏一些属性,如(密码、salt等)

我的问题是我的api a中没有在SonataUserBundles(媒体、comanyName)中添加新字段


有什么想法吗?

您能提供serializer/FOSUserBundle的内容吗,因为它包含一些序列化设置serialization content added,并将字段添加到Model.User.xml中?使用exclusion policy=“all”时,除非您显式配置它们,否则它们不会序列化。请提供serializer/FOSUserBundle的内容,因为其中包含一些序列化设置添加的序列化内容将字段添加到Model.User.xml中?使用exclusion policy=“all”时,在您显式配置它们之前,它们不会序列化。
<serializer>
<class name="FOS\UserBundle\Model\User" exclusion-policy="all" xml-root-name="user">

    <property name="username"            type="string"   expose="true" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="usernameCanonical"   type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="email"               type="string"   expose="true" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="emailCanonical"      type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="enabled"             type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="plainPassword"       type="string"   expose="false" since-version="1.0" groups="sonata_api_write" />
    <property name="lastLogin"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="locked"              type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="expired"             type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="expiresAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="confirmationToken"   type="string"   expose="false" since-version="1.0" groups="sonata_api_read,sonata_search" />
    <property name="passwordRequestedAt" type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="roles"               type="array"    expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="credentialsExpired"  type="boolean"  expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="credentialsExpireAt" type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="gender"              expose="false" />
    <property name="createdAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />
    <property name="updatedAt"           type="DateTime" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" />

</class>