如何覆盖注册表格 FosUserBundle?
How to override register form FosUserBundle?
我想覆盖一些 FOSUserBundle 表单(注册表)所以我按照文档进行操作,但我不明白为什么我总是收到同样的错误:
Attempted to load class "RegistrationFormType" from namespace
"OC\UserBundle\Form\Type". Did you forget a "use" statement for
"FOS\UserBundle\Form\Type\RegistrationFormType"?
500 Internal Server Error - 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';
}
}
Service.yml 的 OCUserBundle:
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
有人能告诉我这里出了什么问题吗?
你看https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md
一切都说明了,我已经在用了,没问题
将他的功能添加到您的注册表类型中
public function getParent()
{
return 'fos_user_registration';
}
解决了这个问题。错误是 FormType 文件的路径与命名空间不同。还是谢谢你。
我想覆盖一些 FOSUserBundle 表单(注册表)所以我按照文档进行操作,但我不明白为什么我总是收到同样的错误:
Attempted to load class "RegistrationFormType" from namespace "OC\UserBundle\Form\Type". Did you forget a "use" statement for "FOS\UserBundle\Form\Type\RegistrationFormType"? 500 Internal Server Error - 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';
}
}
Service.yml 的 OCUserBundle:
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
有人能告诉我这里出了什么问题吗?
你看https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md
一切都说明了,我已经在用了,没问题
将他的功能添加到您的注册表类型中
public function getParent() { return 'fos_user_registration'; }
解决了这个问题。错误是 FormType 文件的路径与命名空间不同。还是谢谢你。