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é !

A voir également:

3 réponses

Pépito
 
Up ... !!!
0
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
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
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   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
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
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   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
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
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
patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   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