0
我重寫FOSUserBundle形態那樣:重寫默認FOSUserBundle窗體處理程序
class RegistrationType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->remove('username')
;
}
public function getParent()
{
return 'fos_user_registration';
}
public function getName()
{
return 'app_user_registration';
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Application\Sonata\UserBundle\Entity\User',
));
}
}
的目的是從寄存器形式刪除用戶名字段。 它的工作原理,但是當我使用的形式我有這樣的錯誤:
Please enter a username
所以我想按照這個文檔覆蓋FormHandler:https://symfony.com/doc/1.3.x/bundles/FOSUserBundle/overriding_forms.html#overriding-form-handlers
但我真的不得到如何去做我的情況下,我正在刪除一個領域?
這裏是我的YAML文件
# service.yml
services:
app.form.registration:
class: Application\Sonata\UserBundle\Form\RegistrationType
tags:
- { name: form.type, alias: app_user_registration }
app.form.handler.registration:
class: Application\Sonata\UserBundle\Handler\RegistrationFormHandler
arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer", "@fos_user.util.token_generator"]
scope: request
public: false
# config.yml
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Application\Sonata\UserBundle\Entity\User
group:
group_class: Application\Sonata\UserBundle\Entity\Group
group_manager: sonata.user.orm.group_manager
service:
user_manager: sonata.user.orm.user_manager
registration:
form:
type: Application\Sonata\UserBundle\Form\RegistrationType
handler: app.form.handler.registration