Ответ, помеченный как прямо сейчас (14 октября 2014 г.), вообще не является правильным ответом.
Это единственное правильное решение:
namespace XXX\UserBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity
* @ORM\Table(name="User_User")
* @ORM\Entity(repositoryClass="UserRepository")
* @UniqueEntity(fields="usernameCanonical", errorPath="username", message="fos_user.username.already_used")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email", column=@ORM\Column(type="string", name="email", length=255, unique=false, nullable=true)),
* @ORM\AttributeOverride(name="emailCanonical", column=@ORM\Column(type="string", name="email_canonical", length=255, unique=false, nullable=true))
* })
*/
class User extends BaseUser
{
...
}
Также вам необходимопереопределить группы проверки для вашей пользовательской формы:
# app/config/config.yml
...
fos_user:
profile:
form:
validation_groups: [Default] # Here you can also add your own groups if you have extra validation
registration:
form:
validation_groups: [Default] # Here you can also add your own groups if you have extra validation
Что мы сделали?Мы просто переопределили группы валидации, чтобы они не соответствовали валидации FOS по умолчанию.Вместо этого ваша форма будет проверена только с Default
группой.Описанная выше проверка UniqueEntity
, в которой нет группы, будет соответствовать Default
group.