2017-09-05 8 views
0

symfony2アプリでは、という名前のクラスが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; 
} 

答えて

0

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; 
    } 
} 

Asloこの記事を参照してくださいattribute overrides for username fosuserbundle

+0

は、鉱山と同じように動作しませんでした。 – Zolbayar

+0

私のために働くことはあなたに賭けを共有することができます – Robert

関連する問題