Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Overriding form FOSUserBundle

$
0
0

Bonjour,

Voila je rencontre un petit problème avec FOSUserBundle

Ce que je fais

Je tente de modifier le template de /profile/edit, pour info j'ai modifier le form Registration sans trop de problèmes, mais en suivant la même procédure pour le profile ça ne fonctionne pas comme je le voudrais.

Voici le formulaire nouvellement créé:

<?php

namespace Intranet\FOSUserBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\FileType;

class ProfileType extends AbstractType
{
    public function buildUserForm(FormBuilderInterface $builder, array $options)
    {
        $builder->remove('username');
        $builder->add('prenom');
        $builder->add('nom');
        $builder->add('Date_De_Naissance',DateType::class, array('years' => range(date('Y') -150, date('Y'))));
        $builder->add('activite', ChoiceType::class, array('choices' => array(
                                                                                'assistant social' => 'assistant social',
                                                                                'cadre' => 'cadre',
                                                                                'chef d\'équipe' => 'Chef d\'équipe',
                                                                                'chef de service' => 'chef de service',
                                                                                'comptable' => 'comptable',
                                                                                'directeur' => 'directeur',
                                                                                'directeur adjoint' => 'directeur adjoint',
                                                                                'educateur spécialisé' => 'educateur spécialisé',
                                                                                'informaticien' => 'informaticien',
                                                                                'moniteur d\'atelier' => 'moniteur d\'atelier',
                                                                                'psychologue' => 'psychologue',
                                                                                'secrétaire administratif' => 'secrétaire administratif',
                                                                                'secrétaire commercial' => 'secrétaire commercial',
                                                                                'autre' => 'autre',
                                                                            )));
        $builder->add('telephone_portable');
        $builder->add('code_interne_telephone_portable');
        $builder->add('telephone_fixe');
        $builder->add('code_interne_telephone_fixe');
        $builder->add('file', FileType::class, array('label' => 'Photo','data_class' => null, 'required'=> false));
    }

    public function getParent()
    {
        return 'FOS\UserBundle\Form\Type\ProfileFormType';
    }

    public function getBlockPrefix()
    {
        return 'fos_user_profile';
    }

Et mes deux fichiers de config :

#FOSUser configuration
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Intranet\FOSUserBundle\Entity\User
    registration:
        form:
            type: Intranet\FOSUserBundle\Form\RegistrationType
    group:
        group_class: Intranet\FOSUserBundle\Entity\Group
    profile:
        form:
            type: Intranet\FOSUserBundle\Form\ProfileType



services:
#    service_name:
#        class: AppBundle\Directory\ClassName
#        arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
    app.form.registration:
        class: Intranet\FOSUserBundle\Form\RegistrationType
        tags:
            - { name: form.type, alias: app_user_registration }
    app.form.profile:
        class: Intranet\FOSUserBundle\Form\ProfileType
        tags:
            - { name: form.type, alias: fos_user_profile }

Ce que j'obtiens

an exception has been thrown during the rendering of a template ("Unable to render the form because the block names array contains duplicates: "_fos_user_profile_form_widget", "fos_user_profile_widget", "fos_user_profile_widget", "form_widget".").

Je vous donne le template au cas où, mais c'est le même que celui de base.

{% trans_default_domain 'FOSUserBundle' %}

{{ form_start(form, { 'action': path('fos_user_profile_edit'), 'attr': { 'class': 'fos_user_profile_edit' } }) }}
    {{ form_widget(form) }}
    <div><input type="submit" value="{{ 'profile.edit.submit'|trans }}" /></div>
{{ form_end(form) }}

Merci d'avance pour votre aide :)


Viewing all articles
Browse latest Browse all 1542

Trending Articles