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 Modification du formulaire


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut Problème de Modification du formulaire
    Bonjour,j'ai un problème avec l'édition de mon formulaire il m'indique toujours cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    500 | Internal Server Error | Doctrine_Table_Exception
    Unknown method TimesheetsTable::
    à vrai dire l'insertion des données se passe très bien voilà mon code :

    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
     
     
    $idTimesheet = $request->getParameter('id');
     
     $this->form = new TimesheetsForm(Doctrine::getTable('Timesheets')->find($idTimesheet),array('idUser' => $this->getUser()->getAttribute('id'),'Username' => $User['login']));
     
     
     
            if ($request->isMethod('post'))
            {
     
                if ($this->processForm($request, $this->form))
                {
     
                 $this->form->save();
       ....
    voilà mon template :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <div style="padding-bottom: 10px; margin-left: 10px;">
        <strong>Ajout d'une nouvelle tache : </strong> 
    </div>
    <form action="" method="post" id="form">
    <table >  
    <tr>
       <th>Client :</th>
       <th>Projet :</th>
       <th>De :</th>
       <th>A :</th>
       <th>Type :</th>
       <th>Etat :</th>
       <th>Tache :</th>
    </tr>
     
    <tr>
    <td><?php echo $form['projet']->render(array('class' => ($form['projet']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['n_estimation']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['date_debut']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['date_fin']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['id_ts_type']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['id_ts_etat']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><?php echo $form['id_ts_tache']->render(array('class' => ($form['n_estimation']->renderError()) ? 'inp-form-error' : 'timesheet-inp-form')); ?></td>
    <td><input type="submit" value="" class="form-submit" /></td>
    <td><input type="reset" value="" class="form-reset"  /></td>
    </tr>
     
    <tr>
        <td><?php if ($form['projet']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['projet']->renderError(); ?></div>
            <?php endif; ?>
     </td>
       <td><?php if ($form['n_estimation']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['n_estimation']->renderError(); ?></div>
            <?php endif; ?></td>
          <td><?php if ($form['date_debut']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['date_debut']->renderError(); ?></div>
            <?php endif; ?></td>
             <td><?php if ($form['date_fin']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['date_fin']->renderError(); ?></div>
            <?php endif; ?></td>
                <td><?php if ($form['id_ts_type']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['id_ts_type']->renderError(); ?></div>
            <?php endif; ?></td>
                   <td><?php if ($form['id_ts_etat']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['id_ts_etat']->renderError(); ?></div>
            <?php endif; ?></td>
                      <td><?php if ($form['id_ts_tache']->renderError()): ?>
            <div class="error-left"></div>
            <div class="error-inner"><?php echo $form['id_ts_tache']->renderError(); ?></div>
            <?php endif; ?></td>
     
     
     
    </tr>
    </table>    
    </form>

    et voilà mon form :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
    class TimesheetsForm extends BaseTimesheetsForm {
     
        public function configure() {
            $this->disableCSRFProtection();
     
     
            // Boucle pour les types
            $q = Doctrine_Query::create()
                    ->select('tst.id_ts_type,tst.nom')
                    ->from('tsTypes tst');
     
            $res = $q->fetchArray();
     
            if ($res != null) 
            {
                foreach ($res as $ligne) 
                {
                    $liste_types[$ligne['id_ts_type']] = $ligne['nom'];
                }
            } 
            else 
            {
                $liste_types = array();
            }
            unset($res);
     
            // Boucle pour les etats
            $q = Doctrine_Query::create()
                    ->select('tse.id_ts_etat,tse.nom')
                    ->from('tsEtats tse');
     
            $res = $q->fetchArray();
     
            if ($res != null) 
            {
                foreach ($res as $ligne) 
                {
                    $liste_etats[$ligne['id_ts_etat']] = $ligne['nom'];
                }
            } 
            else 
            {
                $liste_etats = array();
            }
            unset($res);
     
            // Boucle pour les type taches
            $q = Doctrine_Query::create()
                    ->select('tsta.id_ts_tache,tsta.nom')
                    ->from('tsTaches tsta');
     
            $res = $q->fetchArray();
     
            if ($res != null) 
            {
                foreach ($res as $ligne) 
                {
                    if(strtolower($ligne['nom']) != 'evolution')
                        $liste_taches[$ligne['id_ts_tache']] = $ligne['nom'];
                }
            } 
            else 
            {
                $liste_taches = array();
            }
            unset($res);
     
     
     
     
     
     
     
                $projet = new sfWidgetFormDoctrineJQueryAutocompleter(array(
                        'url' => 'ajaxprojet.html',
                        'model' => 'Timesheets',
                        'method_for_query'=>''
     
                        ));
     
                $this->setWidget('projet', $projet);
     
             $estimation = new sfWidgetFormDoctrineJQueryAutocompleter(array(
                        'url' => 'ajaxestimation.html',
                        'model' => 'Timesheets',
                        'method_for_query'=>''
     
                        ));
     
                $this->setWidget('n_estimation', $estimation);
     
     
             //$this->widgetSchema['date_debut'] = new WidgetFormDateTime();
                $this->widgetSchema['date_debut']= new sfWidgetFormInput();
                  $this->widgetSchema['date_fin']= new sfWidgetFormInput();
             //$this->widgetSchema['date_fin'] = new WidgetFormDateTime();
     
     
     
     
            //$this->widgetSchema['date_fin'] = new sfWidgetFormDateTime(array('date' => array('format' => '%day%/%month%/%year%','years' => array_combine($years, $years))));
            $this->widgetSchema['id_ts_type'] = new sfWidgetFormSelect(array('choices' =>$liste_types));
            $this->widgetSchema['id_ts_etat'] = new sfWidgetFormSelect(array('choices' =>$liste_etats));
            $this->widgetSchema['id_ts_tache'] = new sfWidgetFormSelect(array('choices' =>$liste_taches));
            //  $this->widgetSchema['date_debut'] = new sfWidgetFormInput();
     
     
            //$this->setDefault('id_utilisateur', '20');
            $this->setDefault('date_debut', date("m/d/Y H:i"));
            $this->setDefault('date_fin', date("m/d/Y H:i"));
     
     
            $this->widgetSchema->setNameFormat('timesheets[%s]');
            $this->widgetSchema->setFormFormatterName('custom');
     
        }

    et voilà mon schema :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    Timesheets:
      connection: doctrine
      tableName: timesheets
      columns:
        id_timesheet:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: true
        titre:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        id_client:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        id_estimation:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        id_utilisateur:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        projet:
          type: string(50)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        n_estimation:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        date_debut:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        date_fin:
          type: timestamp(25)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        id_ts_type:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        id_ts_etat:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        id_ts_tache:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
        description:
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        Estimations:
          local: id_estimation
          foreign: id_estimation
          type: one
        TsTypes:
          local: id_ts_type
          foreign: id_ts_type
          type: one
        TsEtats:
          local: id_ts_etat
          foreign: id_ts_etat
          type: one
        TsTaches:
          local: id_ts_tache
          foreign: id_ts_tache
          type: one
        Utilisateurs:
          local: id_utilisateur
          foreign: id_utilisateur
          type: one
        Clients:
          local: id_client
          foreign: id_client
          type: one
    Une idée??

  2. #2
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    il existe ton fichier TimesheetsTable ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Je te remercie pour ta réponse à chaque fois et ton aide,oui bien sur la classe timesheetsTable existe dans model/doctrine/timesheetsTable.class.php??

    Vraiment je ne comprend pas ou est le problème...

  4. #4
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    ton fichier est bien écrit comme cela timesheetsTable.class.php ? prise en compte de la casse.

    Et ta classe est avec des majuscules "TimesheetsTable"
    Tu as bien générer le model avec la commande symfony ?
    (php symfony doctrine:build-model)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Oui tout cela est bien fait Kenny et je l'ai revérifié encore!!

  6. #6
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Si j'ai bien compris le nom du fichier n'est pas le même que le nom de la classe ?
    La classe est très important.

    Il faut que ce soit le même. As-tu utilisé la commande ?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Oui j'ai vérifié et j'ai exécuté la commande à ce niveau tout est correcte e plus l'insertion des donnée se passe correctement,le problème c'est surement à ce niveau là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    $this->form = new TimesheetsForm(Doctrine::getTable('Timesheets')->find($idTimesheet),array('idUser' => $this->getUser()->getAttribute('id'),'Username' => $User['login']));
    Merci Kenny.

  8. #8
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Points : 178
    Points
    178
    Par défaut
    dis donc ça serait pas Doctrine_core::getTable plutot ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Non j'ai changé et toujours le même problème!!!!!!!!!!

  10. #10
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    C'est toujours le meme message ?

    Tu es sur quelle plate-forme ?

    Pourtant il n'y a rien de plus clair comme message, pas de classe existante ...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Je travaille avec netbeans et j'en suis sur que la classe exist,si il y a un probleme lors de l'appel de la classe alors pourquoi l'insertion des données à travers même code et même déclaration se passe très bien!!

  12. #12
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Parce que pour l'insertion tu ne passe pas par le ...Table.php mais par l'autre.

    Alors quel OS car c'est pas netbeans le problème mais si tu es sous linux il ce peux que ce fichier n'est pas les bons droits.

    tu es bien en mode dev aussi ? si non supprime le cache.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Bonjour,non je travaille avec windows 7,si non j'ai vérifié les droits d’accès mais je ne pense que c'est ici le problème meme si je suis tout a fait d'accord avec vous que c'est claire qu'il ne trouve pas la classe,si non j'utilise des fonctions dans la classe et je les appelle dans mon contrôleur et tout marche bien, je veux dire il connait le chemin!!Merci kenny toute tes réponses sont intéressantes...

  14. #14
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    C'est corrigé ? Ou j'ai mal compris ?

  15. #15
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Non biensur que non!!

  16. #16
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Dans ton schema.yml : Dans ton action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Doctrine::getTable('Timesheets')
    Se pourrait-il que le T majuscule y soit pour quelque chose ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Non,je comprend ce que tu veux dire mais j'ai déjà testé mais toujours le meme probleme,peut etre je met un code quelque part qui impacte sur ça malgré que j'ai tout vérifié....

  18. #18
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Tu as supprimé le cache ? est-ce que tu as APC ou un autre op-code ? si c'est le cas redémarre apache.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 75
    Points : 34
    Points
    34
    Par défaut
    Tout cela je l'ai fait mais toujours la même chose...

  20. #20
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Netbeans à parfois du mal à rafraîchir un projet, as tu regarde dans le dossier si le fichier est bien présent, si oui regarde si tu peux l'avoir avec l'auto-complétion avec cette écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TimesheetsTable::getInstance()->method()

Discussions similaires

  1. Problème de modification de tables via un formulaire
    Par maxmusix dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/05/2013, 16h08
  2. [Débutant] Problème au niveau de modification de formulaire
    Par mekup dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/04/2013, 13h23
  3. Réponses: 2
    Dernier message: 31/05/2012, 01h01
  4. [débutant] Problème JSplitPane (modif :InternalFrame)
    Par pingoui dans le forum Agents de placement/Fenêtres
    Réponses: 61
    Dernier message: 03/09/2004, 17h01
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

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