Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2012, 16h57   #1
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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 :
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 :
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 :
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 :
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 :
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??
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 18h29   #2
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
il existe ton fichier TimesheetsTable ?
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 12h21   #3
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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...
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 12h30   #4
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
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)
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 12h35   #5
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Oui tout cela est bien fait Kenny et je l'ai revérifié encore!!
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 13h59   #6
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
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 ?
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h29   #7
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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 :
1
2
3

$this->form = new TimesheetsForm(Doctrine::getTable('Timesheets')->find($idTimesheet),array('idUser' => $this->getUser()->getAttribute('id'),'Username' => $User['login']));
Merci Kenny.
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h43   #8
Membre habitué
 
Inscription : juin 2006
Messages : 488
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 488
Points : 116
Points : 116
dis donc ça serait pas Doctrine_core::getTable plutot ?
erictomcat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h44   #9
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Non j'ai changé et toujours le même problème!!!!!!!!!!
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 17h17   #10
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
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 ...
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 18h28   #11
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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!!
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 18h38   #12
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
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.
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 11h50   #13
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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...
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 14h41   #14
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
C'est corrigé ? Ou j'ai mal compris ?
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 16h44   #15
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Non biensur que non!!
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h06   #16
Membre habitué
 
Avatar de Nico_F
 
Homme Nicolas
Développeur Web
Inscription : avril 2011
Messages : 96
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 24
Localisation : France

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

Informations forums :
Inscription : avril 2011
Messages : 96
Points : 143
Points : 143
Dans ton schema.yml : Dans ton action :
Code :
Doctrine::getTable('Timesheets')
Se pourrait-il que le T majuscule y soit pour quelque chose ?
Nico_F est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h38   #17
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
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é....
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 11h53   #18
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
Tu as supprimé le cache ? est-ce que tu as APC ou un autre op-code ? si c'est le cas redémarre apache.
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 09h39   #19
Invité régulier
 
Inscription : octobre 2009
Messages : 60
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 60
Points : 7
Points : 7
Tout cela je l'ai fait mais toujours la même chose...
elec1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 10h24   #20
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 577
Points : 692
Points : 692
Envoyer un message via MSN à kenny.kev
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 :
TimesheetsTable::getInstance()->method()
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h45.


 
 
 
 
Partenaires

Hébergement Web