Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove/unset form fields in Symfony2

I am working on extending the FosUserBundle registration form. I need to remove/unset the username field (because I am using email as the username).

Is there a way to remove a field from a form that I am extending?

like image 783
MrGlass Avatar asked Jul 23 '12 05:07

MrGlass


2 Answers

If you want to remove/unset some field in your form type which extends FOSUser one you can do something like:

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

    $builder->remove('username');
}
like image 189
l3l0 Avatar answered Oct 24 '22 16:10

l3l0


If you want to override constraint's attributes for example, you can do something like this :

<?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", column=@ORM\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;
}
like image 42
darckcrystale Avatar answered Oct 24 '22 16:10

darckcrystale