Bonjour,

je cherche à ajouter des champs supplémentaire à FosUser et j'ai pas tout compris

est ce que le simple fait de rajouter des champs supplémentaire dans l'entité feras l'affaire?

dans le cas contraire comment je peux faire pour modifier mon formulaire de base afin de rajouter mes champs perso
sachant qu'on ne peux pas toucher directement aux fichiers du bundle

5 réponses


Bonjour.
Il te suffit de consulter la documentation du bundle, en bas tu as les liens qui indiquent comment faire pour l'étendre.
Exemple : Overriding Default FOSUserBundle Forms.

j'ai donc regardé la doc et modifié mais j'ai cette erreur:

FileLoaderLoadException

The file "G:\Fred\Programmes_files\wamp64\www\team_occitanie_officiel\app/config\services.yml" does not contain valid YAML in G:\Fred\Programmes_files\wamp64\www\team_occitanie_officiel\app/config\services.yml (which is being imported from "G:\Fred\Programmes_files\wamp64\www\team_occitanie_officiel\app/config\config.yml").

voici ce que j'ai dans mon config.yml

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: TO\PlateformBundle\Entity\User
    from_email:
        address: "noreply@team-occitanie.ovh"
        sender_name: "Team Occitanie"
    service:
      mailer: fos_user.mailer.twig_swift
    registration:
      form:
      type: TO\PlateformBundle\Form\RegistrationType
      confirmation:
        enabled:  true
        from_email:
          address:  noreply@team-occitanie.ovh
          sender_name:  Team Occitanie
        template: 'email/registration.email.twig'

j'ai rajouté ces lignes à la fin de mon service.yml

app.form.registration:
      class: To\PlateformBundle\Form\RegistrationType
      tags:
        - { name: form.type, alias: app_user_registration }

et j'ai modifié mon fichier Entity User.php

<?php
namespace TO\PlateformBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="utilisateur")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=255)
     *
     * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
     * @Assert\Length(
     *     min=3,
     *     max=255,
     *     minMessage="The name is too short.",
     *     maxMessage="The name is too long.",
     *     groups={"Registration", "Profile"}
     * )
     */
    protected $name;

    public function __construct()
    {
        parent::__construct();
        // your own logic
    }
}

personne n'as une idée ?

Salut, tu as vérifié ton indentation (4 caractères)?

app.form.registration:
    class: To\PlateformBundle\Form\RegistrationType
    tags:
        - { name: form.type, alias: app_user_registration }

oui aucun soucis avec phpstorm le tab fonctionne même avec twig