SonataEasyExtendsBundle を使用して SonataUserBundle を拡張し、いくつかのフィールドを削除しました。データベース テーブルが正しく作成されます。問題は、管理者インターフェースで (SonataAdminBundle を使用して) ユーザーを追加しようとするときです。私は得ています:
phone
のフィールドのタイプを定義してくださいSonata\UserBundle\Admin\Entity\UserAdmin
これにより、管理バンドルがカスタム クラスを取得しておらず、デフォルトのクラスを使用しているという結論に至りました。
私のconfig.yml:
sonata_user:
security_acl: false
manager_type: orm
class:
user: Application\Sonata\UserBundle\Entity\User
group: Application\Sonata\UserBundle\Entity\Group
My Application\Sonata\UserBundle\Resources\services.xml
<service id="sonata.user.admin.user" class="Application\Sonata\UserBundle\Admin\Entity\UserAdmin">
<tag name="sonata.admin" manager_type="orm" group="%sonata.user.admin.groupname%" label="users" label_catalogue="SonataUserBundle" label_translator_strategy="sonata.admin.label.strategy.underscore" />
<argument />
<argument>Application\Sonata\UserBundle\Entity\User</argument>
<argument>SonataAdminBundle:CRUD</argument>
<call method="setUserManager">
<argument type="service" id="fos_user.user_manager" />
</call>
<call method="setTranslationDomain">
<argument>%sonata.user.admin.user.translation_domain%</argument>
</call>
</service>
問題は、自分のユーザー クラスを Sonata Admin に登録し、最終的にデフォルト クラスの登録を解除する方法です。