Symfony 如何覆盖注册表单FosUserBundle?

Symfony 如何覆盖注册表单FosUserBundle?,symfony,fosuserbundle,fosrestbundle,Symfony,Fosuserbundle,Fosrestbundle,我想覆盖一些FOSUserBundle表单(注册表),因此我按照文档进行操作,我无法理解为什么会不断出现相同的错误: 试图从命名空间加载类“RegistrationFormType” “OC\UserBundle\Form\Type”。您是否忘记了“使用”语句 “FOS\UserBundle\Form\Type\RegistrationFormType”? 500内部服务器错误-ClassNotFoundException 这些是我的文件: RegistrationFormType.php: &

我想覆盖一些FOSUserBundle表单(注册表),因此我按照文档进行操作,我无法理解为什么会不断出现相同的错误:

试图从命名空间加载类“RegistrationFormType” “OC\UserBundle\Form\Type”。您是否忘记了“使用”语句 “FOS\UserBundle\Form\Type\RegistrationFormType”? 500内部服务器错误-ClassNotFoundException

这些是我的文件:

RegistrationFormType.php:

<?php
namespace OC\UserBundle\Form\Type;

use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;

class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        parent::buildForm($builder, $options);

        $builder->add('telephone');
    }

    public function getName()
    {
        return 'oc_user_registration';
    }
}    
我将项目配置为当用户尝试在app/resources/config.yml中注册时使用我的表单类型:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: OC\UserBundle\Entity\User
    registration:
        form:
            type: oc_user_registration
谁能告诉我这里出了什么问题吗?

你明白了吗


一切都解释清楚了,我已经用过了,还可以

将他的功能添加到您的注册表类型中

公共函数getParent() { 返回“fos_用户注册”; }


解决了这个问题。错误在于FormType文件的路径与命名空间不相同。无论如何,谢谢您。

找不到FOS\UserBundle\Form\Type\RegistrationFormType
类。您确定它已安装吗?也许你忘了运行
composer安装
?否。当我将注册表单从“oc\u user\u registration”更改为“fos\u user\u registration”时,它工作了。将你的oc\UserBundle作为父项绑定FosUserBundle?是的,我覆盖了登录表单,它工作起来很有魅力,但现在我被困在这里了。这是我的OCUserBundle.php:这不可能是问题所在。仅当您希望在我的新注册表中包含fosuserbundle的预定义输入时才使用此选项。添加它不会影响我得到的错误。
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: OC\UserBundle\Entity\User
    registration:
        form:
            type: oc_user_registration