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

MVC PHP Discussion :

Champ de formulaire non reseigné et null en table [ZF 1.7]


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut Champ de formulaire non reseigné et null en table
    Bonjour,
    Toujours dans ma découverte de ZF à l'aide du tuto approche MVC.

    J'ai fait un formulaire de saisie de données pour ajout en BDD et lorsqu'un champ est laissé vide, il est enregistré une chaîne vide dans la colonne correspondante au lieu de NULL.

    J'ai essayé de mettre la condition suivante dans IndexController :
    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
    class IndexController extends Zend_Controller_Action 
    {
    // ...
        function indexAction()
        {
        //  ...
                if ($form->isValid($formData)) 
                {
                    $pays = new Pays();
                    $row = $pays->createRow();
                    $row->pay_nom_francais = $form->getValue('pay_nom_francais');
    // ... autres champs du formulaire
    // Ce que j'ai essayé ci-dessous :
                   if(empty($form->getValue('pay_commentaire')))
                    {
                        $form->getValue('pay_commentaire') = null;
                    }
                    else
                    {
                        $row->pay_commentaire = $form->getValue('pay_commentaire');
                    }
                    $row->save();
    //...
    Et là j'ai une belle erreur :
    Fatal error: Can't use method return value in write context in /var/www/html/cinedoc/application/controllers/IndexController.php on line 38
    Comme il est tard, mes neurones refusent de comprendre dans l'immédiat ce que cela signifie exactement et comment obtenir ce que je veux : mettre la colonne pay_commentaire à NULL dans la table si le champ Commentaire du formulaire de saisie est laissé vide.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut
    Bonjour

    Et si tu ne fais tout simplement aucune insertion dans la colonne ?
    Et si tu essayes de mettre "NULL" (avec les doubles quotes) au lieux de null ?

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par MtgCmg Voir le message
    Et si tu essayes de mettre "NULL" (avec les doubles quotes) au lieux de null ?
    NULL entre guillemets est une chaîne de caractères. C'est très différent de mettre à NULL une colonne !

    Et si tu ne fais tout simplement aucune insertion dans la colonne ?
    OK j'ai simplement fait ceci et ça semble fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($form->getValue('pay_commentaire') != '')
                    {
                        $row->pay_commentaire = $form->getValue('pay_commentaire');
                    }
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 94
    Par défaut
    Effectivement, ce que tu faisais au départ ne pouvait pas marcher, le message est explicite : tu essayes de forcer la valeur d'un get, qui lui ne fait que te retourner une valeur.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/12/2010, 12h28
  2. Colorer champs formulaire non validés..
    Par socket77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/03/2008, 10h27
  3. [Formulaire] Champs obligatoires et non obligatoires
    Par FraK dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/03/2007, 19h08
  4. Réponses: 4
    Dernier message: 20/09/2006, 16h58
  5. Réponses: 5
    Dernier message: 30/09/2005, 16h42

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