Symfony2, Sonata: избавление от ненужных полей в UserBundle

Я хотел бы не использовать некоторые поля по умолчанию, предоставляемые пакетом Sonata User. Такие как поля facebook, gplus или twitters.

Я расширил SonataUserBundle в приложении \ Sonata \ UserBundle с помощью Easy-Extends.

И создал новый объект User, расширяющий BaseUser:

class User extends BaseUser

Я удалил конфигурацию доктрины XML, так как я использую аннотации.

Так что он распознает мои пользовательские поля, такие как «город» и «адрес».

Но у меня есть все поля от 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;

}

1

Решение

Соната UserBundle, кажется, расширяет FOSUserBundle:

use FOS\UserBundle\Entity\User as AbstractedUser;
use Sonata\UserBundle\Model\UserInterface;

abstract class User extends AbstractedUser implements UserInterface

Итак, я думаю, вы должны быть в состоянии сделать то же самое; вместо расширения пользователя Sonata расширьте FOSUser и реализуйте UserInterface. Таким образом, вы сможете избавиться от нежелательных полей, если они находятся в модели пользователя сонаты.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]