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%]

ProfileType.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 に答える