Sonata Admin +用户捆绑+ FOS UserBundle:覆盖登录表单

时间:2015-09-22 04:52:25

标签: symfony sonata-admin symfony-sonata

我正在使用Sonata管理员,Sonata用户和FOS Bundle。 我设法覆盖UserAdmin实体以显示我在显示/编辑用户时需要的字段,但我需要覆盖登录表单。

基本上,我需要用户使用用户名登录,以及密码和PIN码的组合。 我按照本教程http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_forms.html进行了尝试,并尝试使用注册表单,但无论我做什么,我仍然拥有相同的原始字段。

我的内核文件使用:

new FOS\UserBundle\FOSUserBundle(),
new Application\FOS\UserBundle\ApplicationFOSUserBundle(),
new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),
new UserBundle\UserBundle(), //my custom bundle where I define my entity, my UserAdmin...

我的自定义表单,它没有实现getParent()来使用我自己的字段,如doc所述:

<?php

namespace UserBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class RegistrationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('pinCode');
    }

    public function getName()
    {
        return 'app_user_registration';
    }
}

宣布服务

<service id="coupons_user.registration.form.type" class="UserBundle\Form\RegistrationFormType">
        <tag name="form.type" alias="app_user_registration" />
        <argument>%fos_user.model.user.class%</argument>
</service>

表单在FOS配置中声明:

registration:
        form:
            type: app_user_registration

但无论我尝试什么,都没有变化......我知道我做错了什么......但在哪里? 是否与登录表单的过程相同?如何覆盖此表单以显示我的字段?然后,什么是覆盖控制器以检查三元组用户名/密码/ PIN是否正确的最佳方法?

0 个答案:

没有答案