Bonjour, Je pense aussi qu'un second champ, unique et qui sert de clé aux utilisateurs est la bonne solution. La clé primaire ne devrait jamais être modifiable ou donnée par un utilisateur. Surtour si tu fais des liens entre tables... Et pour fournir les mêmes fonctionnalités, la clé unique est parfaite pour cela.
> -----Message d'origine----- > De : [email protected] > [mailto:[email protected]] De la part de Tanguy Le Meur > Envoyé : vendredi 20 mars 2009 17:17 > À : Symfony-fr > Objet : [symfony-fr] Re: Clé primaire éditable > > > On 20 mar, 14:46, Benoît Nadaud <[email protected]> wrote: > > Bonjour, > > > > J'ai besoin de créer des modules CRUD sur des tables dont la clé > > primaires doit être saisie par les utilisateurs. > > J'ai pu générer mes modules avec la génération de CRUD par > Propel mais > > j'ai un souci de validation lors de la création. Je m'explique : > > - en édition, si je modifie un élément dont la PK est "AA", que je > > change sa PK en "BB" : si BB existe la validation du formulaire va > > engendrer l'update de l'enregistrement dont la PK est BB. A > la limite > > cela ne me gène pas je peux l'expliquer à mes utilisateurs. > > - en création : si je saisi une clé déjà existante je génère une > > erreur SQL (Duplicate entry...) ceci est normal. Il est impossible > > d'utiliser sfValidatorPropelUnique car pour rendre une > colonne unique > > il utilise la PK pour savoir si on est en édition et si la > valeur de > > la colonne rendue unique ne change pas il laisse passer > > (fonctionnement logique). > > > > Quelqu'un aurait-il une solution à ce problème ? > > > > Merci. > > Pourquoi ne pas simplement créer un ID non modifiable par les > utilisateurs, et un champs défini comme unique qui sera aussi > identifiant ? Ce sera bien plus souple pour le futur. > > > --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" de Google Groupes. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.com/group/symfony-fr?hl=fr -~----------~----~----~----~------~----~------~--~---
