Удалить/сбросить поля формы в Symfony2

Я работаю над расширением регистрационной формы FosUserBundle. Мне нужно удалить/сбросить поле имени пользователя (потому что я использую электронную почту в качестве имени пользователя).

Есть ли способ удалить поле из формы, которую я расширяю?


person MrGlass    schedule 23.07.2012    source источник


Ответы (2)


Если вы хотите удалить/сбросить какое-либо поле в вашем типе формы, которое расширяет поле FOSUser, вы можете сделать что-то вроде:

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

    $builder->remove('username');
}
person l3l0    schedule 23.07.2012
comment
Спасибо, кто-то предложил это вчера в IRC. К сожалению, хотя он делает именно то, о чем я просил, он не меняет массив проверки. Чтобы исправить валидацию, нужно больше возиться с формой. - person MrGlass; 24.07.2012

Например, если вы хотите переопределить атрибуты ограничения, вы можете сделать что-то вроде этого:

<?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;
}
person darckcrystale    schedule 13.03.2014