symfony2: удаление имени пользователя из регистрационной формы FOSUserBundle не работает

1

Я пытаюсь удалить поле имени пользователя из регистрационной формы FOSUserBundle, как описано в шаге 2 в этом ответе.

Это класс FormType, который я создал, чтобы переопределить значение по умолчанию:

<?php

// src/UserBundle/Form/Type/RegistrationFormType.php

namespace UserBundle\Form\Type;

use FOS\UserBundle\Form\Type\RegistrationFormType as BaseFormType;

class RegistrationFormType extends BaseFormType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        parent::buildForm($builder, $options);
        $builder->remove('username');
    }
}

Однако поля пользователя по-прежнему отображаются в форме. Что мне не хватает?

Теги:
fosuserbundle

1 ответ

1

Вы не переопределяете форму-сервис в конфигурации пакета.

Поэтому FOSUserBundle не использует ваш тип формы.

# register your form-type as a service ...
services:
    my_custom_user_registration_form:
        class:  "UserBundle\Form\Type\RegistrationFormType"

# ... then tell FOSUserBundle to use this form-type service instead of the default
fos_user:
    ...
    registration:
        form:
            type: my_custom_user_registration_form
  • 0
    Благодарю. Вы указали мне в правильном направлении. Однако мне потребовались некоторые дополнительные детали, которые я нашел в этом руководстве в документации FOSUserBundle. Я должен был более тщательно изучить документы, прежде чем отправлять этот вопрос. Мне также нужно было добавить следующую строку для imports в app/config/config.yml : - { resource: "@UserBundle/Resources/config/services.yml" } Кроме того, мне нужно было добавить use Symfony\Component\Form\FormBuilderInterface; to RegistrationFormType.php .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню