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

 PHP Discussion :

Problème mise à jour d'une entrée dans la base [1.x]


Sujet :

PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 29
    Points
    29
    Par défaut Problème mise à jour d'une entrée dans la base
    Bonjour,

    Je début actuellement avec Symfony, et après avoir passé plusieurs heures à essayer de comprendre une erreur, ou plutôt un comportement que je ne souhaitais pas, je me suis résolu à venir poster ici.

    Alors voilà j'ai une table news_category décrit par le schéma suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # Table "news_category"
    NewsCategory:
      actAs:          [Sluggable, Timestampable]
      columns:
        id:           { type: integer, primary: true, autoincrement: true }
        title:        { type: string(255), notnull: true }
        image:        { type: string(255), notnull: true }


    Et voici le contenu de mon fichier /apps/backend/modules/newsCategory/actions.php :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    class newsCategoryActions extends sfActions
    {
     
      public function executeIndex(sfWebRequest $request)
      {
        $this->categories = Doctrine::getTable('NewsCategory')
                ->createQuery('c')
                ->orderBy('c.title')
                ->execute();
      }
     
     
     
      public function executeAdd(sfWebRequest $request)
      {
        $this->form = new NewsCategoryForm();
        if($request->isMethod('post')) $this->processForm($request, $this->form);
      }
     
     
     
      public function executeEdit(sfWebRequest $request)
      {
        $this->category = Doctrine::getTable('NewsCategory')->find($request->getParameter('id'));
        if($request->isMethod('put'))
        {
            $this->form = new NewsCategoryForm();
            $this->processForm($request, $this->form);
        }
        else $this->form = new NewsCategoryForm($this->category);
      }
     
     
     
      protected function processForm(sfWebRequest $request, sfForm $form)
      {
        $form->bind($request->getParameter($form->getName()));
        if($form->isValid())
        {
            $category = $form->save();
            $this->redirect('newsCategory/index');
        }
      }
    }

    Le problème se situe au niveau de l'action "edit". Lorsque j'appuie sur mon bouton "Envoyer" j'ai droit à cette erreur de validation : Id: Invalid.

    L'action "add" fonctionne elle parfaitement.

    Aussi j'ai quelques doute sur est-ce que j'utilise la bonne méthode pour traiter mes formulaires ? Si quelqu'un avec un peu d'expérience avec Symfony pouvait aussi m'aiguiller la-dessus, ce serait super.

    Voilà, d'avance je vous remercie.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 29
    Points
    29
    Par défaut
    Quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($request->getParameter($form->getName()));
    j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    array(4) {
      ["title"]=>
      string(9) "Concours2"
      ["image"]=>
      string(50) "/images/backend/news/categories/news_concours2.png"
      ["id"]=>
      string(1) "2"
      ["_csrf_token"]=>
      string(32) "730c6582f53c38b8f90be5aaa6e647ce"
    }
    A voir si ça peut aider, j'ai toujours pas réussi à résoudre le problème

  3. #3
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Génère un nouveau module (que tu pourras virer ensuite), un CRUD sur ta table. Tu devrais trouver rapidement l'erreur.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 29
    Points
    29
    Par défaut
    En effet ça marche mieux ainsi, merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 22
    Points : 29
    Points
    29
    Par défaut
    Je reviens sur mon problème. Ayant gagné un peu d'expérience avec Symfony j'ai compris quel était mon problème.

    L'attribut action de ma balise <form> envoyait bien vers l'action update, mais n'envoyait pas l'idée associé. Du coup l'objet n'était pas récupéré et naturellement la validation échouait.

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

Discussions similaires

  1. Mise à jour d'une comboBox dans Visual Studio
    Par lilimilou29 dans le forum VB.NET
    Réponses: 7
    Dernier message: 31/05/2007, 17h04
  2. [MySQL] Problème de mise a jour d'une donnée dans la base
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 24/05/2007, 16h06
  3. Mise à jour d'une date dans MySQL
    Par champijulie dans le forum JDBC
    Réponses: 6
    Dernier message: 07/02/2007, 17h02
  4. [MySQL] mise à jour d'une date dans une table
    Par jophp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 20h48
  5. Mise à jour d'une table dans 2 BDD
    Par bozolozo dans le forum Access
    Réponses: 4
    Dernier message: 21/04/2006, 16h55

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