2012-07-23 18 views
5

Pracuję nad rozszerzeniem formularza rejestracyjnego FosUserBundle. Muszę usunąć/odznaczyć pole nazwy użytkownika (ponieważ używam adresu e-mail jako nazwy użytkownika).Usuń/usuń pola formularza w Symfony2

Czy istnieje sposób usunięcia pola z formularza, który rozszerzam?

Odpowiedz

21

Jeśli chcesz usunąć/wyłączony jakieś pole w swoim rodzaju postaci, która rozciąga FOSUser jednego można zrobić coś takiego:

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

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

Dzięki, ktoś zasugerował to wczoraj na IRC. Niestety, podczas gdy robi dokładnie to, o co prosiłem, nie zmienia tablicy sprawdzania poprawności. Konieczne jest więcej bałaganu w formularzu, aby naprawić sprawdzanie poprawności. – MrGlass

1

Jeśli chcesz nadpisać atrybuty ograniczenie dla przykładu, można zrobić coś takiego :

<?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; 
} 
Powiązane problemy