是否可以在Symfony2中为“username”重复条目
问题描述:
在我们的Symfony2应用程序中,我们有一个名为sfGuardUser
的类,从FOS\UserBundle\Model\User
(FOSUserBundle包的一部分)延伸。所以它继承了该User类中的$ username字段,当我尝试插入重复的用户名时会引发错误。我想要做的是检查用户在抛出该错误之前是否确认了他/她的电话号码和电子邮件地址。是否可以在Symfony2中为“username”重复条目
例如,当有人使用用户名“Anna”注册但未确认她的电子邮件和电话号码。其他人应该能够使用用户名“Anna”进行注册。我应该如何实现这种行为?
我试图做attribute override没有任何成功。下面的代码:
use FOS\UserBundle\Model\User as BaseUser;
/**
* @ORM\Entity(repositoryClass="sfGuard\Bundle\sfGuardBundle\Entity\sfGuardUserRepository")
* @ORM\Table(name="sf_guard_user")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email",
* [email protected]\Column(
* name = "email_address",
* type = "string",
* length = 250,
* unique = true
* )
* ),
* @ORM\AttributeOverride(name="username",
* [email protected]\Column(
* name = "username",
* type = "string",
* length = 250,
* unique = false
* )
* ),
* @ORM\AttributeOverride(name="enabled",
* [email protected]\Column(
* name = "is_active",
* type = "boolean",
* nullable = true,
* options = {
* "default" : 1
* }
* )
* )
* })
* @ORM\HasLifecycleCallbacks
*/
class sfGuardUser extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="first_name", type="string", length=255, nullable=true)
* @Assert\NotBlank()
* @Assert\Length(
* min = 2,
* minMessage = "Too short."
*)
*/
protected $firstName;
}
答
这里的answere
<?php
namespace LoginBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
/**
* Contacts
*
* @ORM\Table(name="Contacts")
* @ORM\Entity(repositoryClass="LoginBundle\Repository\ContactsRepository")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="username",
* [email protected]\Column(
* nullable = true
* )
* ),
* @ORM\AttributeOverride(name="usernameCanonical",
* [email protected]\Column(
* name = "username_canonical",
* nullable = true
* )
* ),
* @ORM\AttributeOverride(name="email",
* [email protected]\Column(
* nullable = true
* )
* ),
* @ORM\AttributeOverride(name="emailCanonical",
* [email protected]\Column(
* name = "email_canonical",
* nullable = true
* )
* )
* })
*/
class Contacts extends BaseUser
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var int
*
* @ORM\Column(name="Type", type="integer",nullable=true)
*/
protected $type;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set type
*
* @param integer $type
* @return Contacts
*/
public function setType($type)
{
$this->type = $type;
return $this;
}
/**
* Get type
*
* @return integer
*/
public function getType()
{
return $this->type;
}
}
没有工作,和我一样。 – Zolbayar
它为我工作可以分享你githup回购 – Robert