SonataUserBundle覆盖表单编辑配置文件

时间:2013-01-16 11:29:21

标签: symfony fosuserbundle symfony-sonata

如何覆盖SonataUserBundle表格编辑个人资料?

这里是代码

config.yml
# fos User
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Application\Sonata\UserBundle\Entity\User
    profile:
        form:
            type: sonata_user_profile
    group:
        group_class: Application\Sonata\UserBundle\Entity\Group

services:
   sonata_user_profile.profile.form.type:
      class: Application\Sonata\UserBundle\Form\Type\ProfileType
      tags:
        - { name: form.type, alias: sonata_user_profile }
      arguments: [%fos_user.model.user.class%]

ProfilType.php

<?php

namespace Application\Sonata\UserBundle\Form\Type;

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

use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class ProfileType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('gender', null, array('required' => true))
            ->add('firstname', null, array('required' => true))
            ->add('lastname', null, array('required' => true))
            ->add('dateOfBirth', 'birthday', array('required' => true))
            ->add('label', null, array('required' => true))
        ;
    }

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

我不明白,表单不是覆盖,似乎没有加载服务。

如果我在/ src / Application / Sonata / UserBundle / Form / Type /

中的ProfileType.php中输入错误

它什么都没改变,前面没有错误......

1 个答案:

答案 0 :(得分:0)

解决!

我必须在我的包中添加路由,然后覆盖控制器并使用新服务