IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[FOSUserBundle] Personnaliser les champs de la table User [2.x]


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [FOSUserBundle] Personnaliser les champs de la table User
    Bonjour,

    J'utilise FOSUserBundle, et je dois adapter la base de données générée à une bdd que j'ai déjà.
    J'ai compris que je ne pouvais pas me débarrasser de certains champs nécessaires au fonctionnement de ce bundle, j'ai alors décidé de garder ces champs, et d'ajouter les miens.
    Et c'est là où je bloque.

    Sur la bdd que j'ai déjà, j'ai (par exemple) un champ username varchar(32), mais FOSUB génère un champ username varchar(255).
    Comment personnaliser celui-ci?

    Quand je redéfinis la variable $username dans mon Entity/User:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /**
    * @ORM\Column(type="string", length=32)
    */
    protected $username;
    J'ai une erreur comme quoi je ne peux pas définir $username une autre fois.

    Avez-vous une idée?
    Merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    La version actuelle de Doctrine 2 ne permet pas de redéfinir une variable.

    J'ai du modifier le fichier vendors/bundles/FOS/UserBundle/Resources/config/doctrine/User.orm.xml pour avoir le résultat que je veux. (et encore, je peux pas donner des types text, timestamp ou tinyint)
    C'est crados mais je n'ai pas le choix.


    Edit: Il y a une autre solution:
    Dans vendors/doctrine/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php, commentez les lignes 730 et 1405, vous n'aurez plus d'exception et votre bdd sera générée comme vous voulez.
    Seulement, c'est une sale solution, si les devs de FOSUB ont mis ces exceptions, c'est sûrement pas pour le fun.

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut
    Crade ? Non, du tout ... Plutôt : mais pourquoi diable as-tu besoin de faire ça ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Parce que la table en question ne sera pas utilisée par le site uniquement, mais aussi par un autre logiciel, MaNGOS, qui normalement génère sa propre table utilisateur. Je veux donc éviter tout comportement anomal de la part de MaNGOS.

    J'ai dit que c'était crados parce que j'ai modifié le code source du bundle.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut En le faisant proprement
    Pour le faire simplement et facilement, voici ta solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    namespace XX\UserBundle\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="member")
     */
    class User extends BaseUser
    {
        /**
         * @ORM\Id
         * @ORM\Column(type="integer")
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id; 
    
        /**
         * @ORM\Column(type="string", name="login")
         */
        protected $username;
        [...]
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage de TOUS les champs d'une table
    Par babulior dans le forum ASP
    Réponses: 6
    Dernier message: 28/06/2005, 15h33
  2. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  3. Problème avec les champs de type table
    Par devdev dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/12/2004, 16h05
  4. Retrouver tous les champs d'une table
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/07/2004, 20h40
  5. Afficher tous les champs d'une table avec dbexpress et MySQL
    Par LHT dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/06/2004, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo