2012-07-23 11 views
5

私はFosUserBundle登録フォームを拡張しようとしています。ユーザー名フィールドを削除/設定解除する必要があります(私はユーザー名として電子メールを使用しているためです)。Symfony2のフォームフィールドの削除/設定解除

私が拡張しているフォームからフィールドを削除する方法はありますか?

答えて

21

あなたは解除/あなたのような何かを行うことができますFOSUserの1を拡張し、フォームタイプでいくつかのフィールド削除する場合:

public function buildForm(FormBuilder $builder, array $options) 
{ 
    parent::buildForm($builder, $options);   

    $builder->remove('username'); 
} 
+2

ありがとう、誰かがIRCでこれを提案しました。残念ながら、それは私が求めたものとまったく同じですが、検証配列は変更されません。バリデーションを修正するには、フォームをもっと混乱させる必要があります。 – MrGlass

1

を使用すると、たとえば、制約の属性を上書きしたい場合は、あなたがこのような何かを行うことができます:

<?php 

namespace Acme\UserBundle\Entity; 

use FOS\UserBundle\Entity\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* User 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="Acme\UserBundle\Entity\UserRepository") 
* @ORM\AttributeOverrides({ 
*  @ORM\AttributeOverride(name="username", [email protected]\Column(nullable = true, unique = false)) 
* }) 
*/ 
class User extends BaseUser { 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 
} 
関連する問題