我不想使用Sonata User捆绑包提供的一些默认字段。如facebook、gplus或twitter字段。
我用Easy Extends扩展了Application''Sonata''UserBundle中的SonataUserBundle。
并创建了一个新的用户实体,扩展了BaseUser:
class User extends BaseUser
我删除了xml原则配置,因为我使用的是注释。
因此,它确实识别了我的自定义字段,如"城市"answers"地址"。
但是我有BaseUser的所有字段,我如何才能去掉不必要的字段?
<?php
namespace Application'Sonata'UserBundle'Entity;
use Doctrine'ORM'Mapping as ORM;
use Sonata'UserBundle'Entity'BaseUser as BaseUser;
/**
* @ORM'Entity
* @ORM'Table(name="fos_user_user")
*/
class User extends BaseUser
{
/**
* @ORM'Id
* @ORM'Column(type="integer")
* @ORM'GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM'Column(type="string", length=64, nullable=false, name="city")
*/
protected $city;
/**
* @ORM'Column(type="string", length=255, nullable=false, name="address")
*/
protected $address;
}
Sonata UserBundle似乎扩展了FOSUserBundle:
use FOS'UserBundle'Entity'User as AbstractedUser;
use Sonata'UserBundle'Model'UserInterface;
abstract class User extends AbstractedUser implements UserInterface
所以,我认为你也应该能够做到这一点;而不是扩展Sonata User,而是扩展FOSUser并实现UserInterface。这样,您就可以去掉不需要的字段,只要它们在sonata的User模型中即可。