Symfony 3 + FOSUser + расширение формы = ошибка пространства имен - PullRequest
0 голосов
/ 16 ноября 2018

Использование symfony 3 Я пытаюсь расширить форму регистрации по умолчанию, следуя этому учебному пособию , но получаю ошибку пространства имен, подобную этой:

Attempted to load class "RegistrationType" from namespace "UserBundle\Form". Did you forget a "use" statement for another namespace?

Кажется, проблема возникает в config.yaml, и если я добавлю строку - { resource: "@UserBundle/Resources/Form/RegistrationType.php" }, это решит проблему, пока я не обновлю страницу.Я не понимаю, почему ..

вот мое расширение формы:

<?php

namespace UserBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationType extends AbstractType

{
public function buildForm(FormBuilderInterface $builder, array $options)

{
    $builder->add('firstname');
    $builder->add('lastname');
}

public function getParent()

{
    return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}

public function getBlockPrefix()

{
    return 'app_user_registration';
}

public function getName()

{
    return $this->getBlockPrefix();
}

}

мой config.yml

# FOSUSerBundle
fos_user:
  db_driver: orm
  firewall_name: api
  user_class: ApiBundle\Entity\User
  from_email:
    address:        %client_mail%
    sender_name:    %client_name%
  registration:
    form:
        type: UserBundle\Form\RegistrationType

мой пакет

namespace UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class UserBundle extends Bundle
{

  public function getParent()
  {
    return 'FOSUserBundle';
  }

}

и мой сервис

app.form.registration:
  class: UserBundle\Form\RegistrationType
  tags:
    - { name: form.type, alias: app_user_registration }
...