0

如何覆盖 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%]

配置文件类型.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 中输入错误

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

4

1 回答 1

0

解决!

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

于 2013-01-16T16:59:50.827 回答