2012-07-23 19 views
5

Estoy trabajando para ampliar el formulario de registro FosUserBundle. Necesito eliminar/desarmar el campo de nombre de usuario (porque estoy usando el correo electrónico como nombre de usuario).Eliminar/deshacer campos de formulario en Symfony2

¿Hay alguna manera de eliminar un campo de un formulario que extiendo?

Respuesta

21

Si desea eliminar/desactiva algunas de campo en su tipo de formulario que se extiende FOSUser uno puede hacer algo como:

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

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

Gracias, alguien sugirió esto ayer en el IRC. Desafortunadamente, si bien hace exactamente lo que solicité, no cambia la matriz de validación. Se necesita más confusión con el formulario para corregir la validación. – MrGlass

1

Si desea anular los atributos de restricción, por ejemplo, puede hacer algo como esto :

<?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; 
} 
Cuestiones relacionadas