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 :

Problème de champ vide dans la BDD (Postgresql). String '' plutot que champ vide [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut Problème de champ vide dans la BDD (Postgresql). String '' plutot que champ vide
    Bonjour,

    Donc voilà, j'ai un formulaire, et lors de l'enregistrement de donnée (new ou edit), sur les champs non obligatoire, lorsque je ne rentre rien, il m'enregistre automatiquement des doubles quotes '' au lieu de laisser les champs null. Cela me pose un soucis sur un champ date puisqu'il veut me rentrer '' ce qui ne fait tous planter

    Quelqu'un aurait t'il une idée sur pourquoi Symfony (ORM Doctrine) m'enregistre des doubles quotes sur des champs non renseignés ?

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Enfin ma question est plutôt, comment ne pas sauvegarder un champ dans une base de donnée, lorsque celui ci est vide ?

  3. #3
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Malheureusement, c'est plus compliqué qu'il n'y parait. La question ressort d'ailleurs régulièrement.

    Voir par exemple cette discussion sur les forums anglais qui aborde le sujet. Je n'ai pas testé la proposition de romain_godefroy (dernier post du fil au moment où j'écris), cela vaudrait le coup de modifier la classe ValidatorNullString pour vérifier.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Merci pour ta réponse.

    Alors j'ai tester la solution proposé par romain_godefroy. Cela ne marche pas car symfony ne connais pas le ValidatorNullString.

    Du coup ca m'a donner une idée, j'ai été voir dans les fichiers de base de symfony. Dans le dossier "/lib/vendor/lib/validator/" et le fichier "sfValidatorString.class.php" puisque mes champs sont des Strings.

    J'avais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected function configure($options = array(), $messages = array())
      {
        $this->addMessage('max_length', '"%value%" is too long (%max_length% characters max).');
        $this->addMessage('min_length', '"%value%" is too short (%min_length% characters min).');
     
        $this->addOption('max_length');
        $this->addOption('min_length');
     
        $this->setOption('empty_value', '');
      }
    et j'ai remplacé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $this->setOption('empty_value', '');
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $this->setOption('empty_value', null);
    Du coup ca marche, il m'enregistre les données en null du coup. Solution peut-être pas très propre, mais très efficace ^^

  5. #5
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Bien vu !

    Ce n'est pas propre si tu modifies le code du sfValidatorString en effet, mais en dérivant cette classe de base, en surchargeant le configure() et en utilisant le nouveau validateur, ce sera propre et portable.

    D'ailleurs, je m'en vais de ce pas adapter ton idée sur le ValidatorNullString que j'utilise.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Si tu pouvais me montrer ton résultat final, ca serait sympa Puis ca pourrais sans doute servir à d'autre

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

Discussions similaires

  1. [PostgreSQL] Modifier les champs dans la bdd postgresql avec php
    Par zohit dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 29/09/2014, 13h33
  2. Trier un champ + écriture dans la bdd
    Par oranoutan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/09/2007, 17h59
  3. [Conception] Problème avec l'écriture dans une BDD [Script de news]
    Par NeuroGen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/07/2006, 19h08
  4. [MySQL] Pb d'insertion d'une valeur de champ select dans une Bdd
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 20/10/2005, 18h51
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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