Php FOSUserBundle重写默认表单并获取InvalidArgumentException
在执行覆盖窗体的操作后,我遇到一个错误。我得到的错误是: 为服务“scheduler\u user.registration.form.type”指定的类型名称与实际名称不匹配。预期为“调度器用户注册”,给定为“fos用户注册” 以下是相关文件: RegistrationFormType.phpPhp FOSUserBundle重写默认表单并获取InvalidArgumentException,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,在执行覆盖窗体的操作后,我遇到一个错误。我得到的错误是: 为服务“scheduler\u user.registration.form.type”指定的类型名称与实际名称不匹配。预期为“调度器用户注册”,给定为“fos用户注册” 以下是相关文件: RegistrationFormType.php <?php // src/Scheduler/UserBundle/Form/Type/RegistrationFormType.php namespace Scheduler\UserBund
<?php
// src/Scheduler/UserBundle/Form/Type/RegistrationFormType.php
namespace Scheduler\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;
class RegistrationFormType extends BaseType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
// add your custom field
$builder->add('firstname');
$builder->add('lastname');
}
public function getFirstname()
{
return 'scheduler_user_registration';
}
public function getLastname()
{
return 'scheduler_user_registration';
}
}
服务.yml
# src/Scheduler/UserBundle/Resources/config/services.yml
services:
scheduler_user.registration.form.type:
class: Scheduler\UserBundle\Form\Type\RegistrationFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: scheduler_user_registration }
表单类型不需要
getFirstname
和getLastname
方法
删除其中一个,将另一个重命名为getName
该方法不是表单字段的getter。它只是指定表单的名称
# app/config/config.yml
# ...
# FOS User Bundle
fos_user:
db_driver: orm
firewall_name: main
user_class: Scheduler\UserBundle\Entity\User
registration:
form:
type: scheduler_user_registration
# src/Scheduler/UserBundle/Resources/config/services.yml
services:
scheduler_user.registration.form.type:
class: Scheduler\UserBundle\Form\Type\RegistrationFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: scheduler_user_registration }