1 Отредактировано KEFIR4UK (2015-04-08 09:39:27)

Тема: Переопределение формы регистрации в SOnataUserBundle

Добрый день. Нужно переопределить  форму регистрации( добавить некое поле age). В FOSUserBundle это особого труда не соствило но в сонате...геморойно как по мне) И так при попытке переопределиния формы выводит:

Method "age" for object "Symfony\Component\Form\FormView" does not exist in ApplicationSonataUserBundle:Registration:register_content.html.twig at line 104

Да,да я знаю что это за ошибка и знаю почему она срабатывает - почему то срабатывает  RegistrationFormType в vendor/friemdsosymfony/userbundle/FOS/Form/Type/RegistrationFormType .php вместо   app/Application/Sonata/UserBundle/Form/Type/RegistrationFormType.php. Переопределял контроллер но но результата не дало. В чем дело уже не знаю. Буду весьма благодарен за совет!
Кусок из конфига:

fos_user:
    db_driver:        orm 
    firewall_name:    main
    user_class:       Application\Sonata\UserBundle\Entity\User
    group:
        group_class:  Application\Sonata\UserBundle\Entity\Group
    profile:
        # Authentication Form
        form:
            type:               fos_user_profile
            handler:            fos_user.profile.form.handler.default
            name:               fos_user_profile_form
            validation_groups:  [Authentication] # Please note : this is not the default value
sonata_user:
   
    security_acl:           false
    manager_type: orm # Can be orm for mongodb
    table:
        user_group: "my_custom_user_group_association_table_name"
    impersonating:
        route:                page_slug
        parameters:           { path: / }
    class:                  # Entity Classes
        user:               Application\Sonata\UserBundle\Entity\User
        group:              Application\Sonata\UserBundle\Entity\Group
    admin:                  # Admin Classes
        user:
            class:          Sonata\UserBundle\Admin\Entity\UserAdmin
            controller:     SonataAdminBundle:CRUD
            translation:    SonataUserBundle
        group:
            class:          Sonata\UserBundle\Admin\Entity\GroupAdmin
            controller:     SonataAdminBundle:CRUD
            translation:    SonataUserBundle
    profile:  # Profile Form (firstname, lastname, etc ...)
        form:
            type:               sonata_user_profile
            handler:            sonata.user.profile.form.handler.default
            name:               sonata_user_profile_form
            validation_groups:  [Profile]
        register: 
        form:
                type:               sonata_user_registration
                handler:            sonata.user.register.form.handler.default

и файл services.yml в Application\Sonata\UserBundle\Resources\config

services:
    sonata_user.registration.form.type:
    class: Application\Sonata\UserBundle\Form\Type\RegistrationFormType
    arguments: [ "%fos_user.model.user.class%"]
    tags:
        - { name: form.type, alias: sonata_user_registration }