Comment proposer une valeur par défaut pour l'ID sous symfony ??

Pépito -  
 Utilisateur anonyme -
Bonjour,

Je rencontre un problème sous Symfony. Je souhaiterai proposer une valeur par défaut pour l'identifiant lorsque je créé un compte pour un client donné. Je voudrai que l'ID est la forme suivante :
{CLIENT_PREFIX}-{RANDOM_NUMBER}

A noter que le client préfix appartient a ma table client, et que l'ID que je veux rentrer est celui de ma table compte :)

Si vous avez des idées je suis preneur .. Je continue de chercher de mon côté !

3 réponses

  1. Utilisateur anonyme
     
    Salut,

    j'imagine que l'on devient user lors de l'inscription et client lors d'un achat. Tu dois avoir une relation OneToOne entre user et client. Je ne pense pas qu'il soit bon de vouloir remplacer la clé primaire par un id fait maison. Dans ton entité client, dans le setter d'user tu fais un truc du genre.

    
    class Client
    {
        const PREFIX = "client_";
    
    	// …
    
        /**
         * @param User $user
         * @return Client
         */
        public function setUser(User $user){
            $this->user = $user;
            $user->setClientId(self::PREFIX. mb_rand());
    	 return $this ;
        }
    
    


    ׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
    0
    1. Pépito
       
      Salut lobotoFix et merci de ta réponse tout d'abord !

      Dans mon cas je suis l'utilisateur principal et je créé mes clients ainsi que les comptes associés aux clients ;) Pas d'histoire direct entre le user et le client dans mon cas :/

      Ce que je veux c'est seulement :

      A la création d'un compte pour un client donné, que l'ID s'implémente directement dans la BDD sous la forme {CLIENT_PREFIX}-{RANDOM_NUMBER} :)


      Pépito
      0
  2. patrice86 Messages postés 1520 Statut Membre 125
     
    Bonjour,

    Je vais peut-être paraître idiot mais je ne comprends pas bien cette phrase :
    "A noter que le client préfix appartient a ma table client, et que l'ID que je veux rentrer est celui de ma table compte :) "

    Peux-tu nous faire un schèma de ta base de données stp ?
    0
    1. Pépito
       
      Bonjour patrice86,

      Ce que je voulais dire c'est que le client_prefix se réfère au champ prefix présent dans ma table Client et que l'ID sous la forme {CLIENT_PREFIX}-{RANDOM_NUMBER} est l'ID que je veux rentrer dans ma table Contact.

      Je me suis mal exprimé effectivement en relisant ...

      Pépito
      0
    2. patrice86 Messages postés 1520 Statut Membre 125
       
      Donc si je te comprends bien, imaginons que nous que dans la table Client nous ayons un enregistrement avec un prefix TOTO (pas original du tout je sais...)

      Tu fais une requête doctrine qui va récupérer le préfix de ton client donné puis tu fais un setID($monPrefix.mb_rand()) que tu persistes ensuite dans ta table Contact.

      Non ?
      0
    3. Pépito
       
      Justement je voudrais savoir comment implémenter cet ID, c'est l'objet de ma question ^^ Pour le moment mon ID est générer automatiquement donc pour mes enregistrements j'ai 1,2,3, ....
      0
    4. Pépito
       
      Mais si je reprends ton exemple de toto comme préfix ;)

      Je voudrais avoir dans ma BDD lorsque j'ajoute un compte : toto-{RANDOM_NUMBER}
      0
    5. patrice86 Messages postés 1520 Statut Membre 125
       
      C'est donc ce que je te dis je pense

      Tu as déjà des valeurs qui sont enregistrées dans la table Client ?
      Si oui, tu peux donc récupérer le préfix pour les enregistrements de cette table ?

      Où est le problème alors ?

      Où alors je ne comprends pas du tout et je ne suis pas bien réveillé ce matin :)
      0