如何覆盖FosUserBundle的注册表格?

时间:2015-07-08 23:11:09

标签: symfony fosuserbundle fosrestbundle

我想覆盖一些FOSUserBundle表单(注册表单)所以我按照文档操作,我无法理解为什么我会一直收到同样的错误:

  

尝试加载类" RegistrationFormType"从命名空间   " OC \ UserBundle \表格\类型&#34 ;.你忘记了"使用"声明   " FOS \ UserBundle \表格\型号\ RegistrationFormType&#34 ;?        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';
    }
}    

OCUserBundle的Service.yml:

services:
    oc_user_registration:
        class: OC\UserBundle\Form\Type\RegistrationFormType
        tags:
            - {name: form.type, alias: oc_user_registration}

当我尝试在app / Ressources / config.yml中注册时,我将项目配置为使用我的表单类型:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: OC\UserBundle\Entity\User
    registration:
        form:
            type: oc_user_registration

请有人告诉我这里有什么问题吗?

3 个答案:

答案 0 :(得分:2)

解决了这个问题。错误是指向FormType文件的路径的路径与命名空间不同。无论如何,谢谢你。

答案 1 :(得分:0)

答案 2 :(得分:0)

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

  

public function getParent()       {           返回&#39; fos_user_registration&#39 ;;       }