500 | Internal Server Error | Doctrine_Exception
Couldn't find class E
je viens d'installer le plugin doctrineGuard
et maintenant quand je lance mon module ça me provoque cette erreur
d'où cela peut il venir?
Version imprimable
500 | Internal Server Error | Doctrine_Exception
Couldn't find class E
je viens d'installer le plugin doctrineGuard
et maintenant quand je lance mon module ça me provoque cette erreur
d'où cela peut il venir?
Bonsoir,
Peux-tu nous en dire plus comme par exemple ce que tu as fait après avoir fait symfony plugin:install sfDoctrineGuardPlugin ?
j'ai suivi les étapes d'installation du plugin jusqu'au data load fixture
http://www.symfony-project.org/plugi...=plugin_readme
il n'y a que ce module qui ne marche plus j'ai créé un nouveau projet et là ça marche nickel bizarre
Essaie en ajoutant tes tables perso l'une après l'autre dans ton schéma.
Jusqu'à ce que le bogue arrive.
c'est à dire en ajoutant mes tables perso?
j'enlève toute mes tables du schema.yml?
Ben oui,
Tu en mets une, puis, si ça marche, une autre, et ainsi de suite...
Et tu sauras un peu plus où cela plante.
merci pour ton aide, et ton attention
j'ai fait une nouveau projet en parallèle avec le même schema.yml et ça marche trés bien, donc je pense laisser mourir ce projet là mdr.
J'ai déjà eu un truc du même genre sur un projet, repris dans un nouveau le shema et les modules et les routes et .... tout marchait (presque), enfin très vite.
Je n'ai jamais compris pourquoi. :ccool:
bonjour, je retrouve le même problème aujourd'hui,
C'est arrivé en rajoutant un champ dans ma base de donnée et une contrainte entre deux tables 1:1.
J'ai modifié mon schema.yml, j'ai fait un doctrine:build-model, build-forms, build-filters et cache clear, je recharge mon module et là Couldn't find class E.
Ai je sauté une étape aprés avoir modifié ma base de donnée ?
Qui pense savoir d'ou peut venir le probléme ?
merci pour votre aide
finalement seul le module dont j'ai modifié les templates en local et le generator.yml ne fonctionnent pas, les autres modules qui sont en cache ou les modules d'administration sfdoctrineguard sont ok.
Que doit-je faire pour mon module? sans avoir à le recréé?
merci
personne pour m'aider?
J'ai voulu générer un nouveau module admin generator sur le même modèle hardware mais avec un autre nom liste_general, mais il me force à garder le nom de mon ancien module general
Code:
1
2
3 symfony doctrine:generate-admin frontend hardware --module =liste_general >> app Generating admin module "general" for model "hardware"
bonjour à tous, j'ai encore eu la même erreur aujourd'hui pourtant j'ai fait aucune modif à part mon generator.yml.
C'est à n'y rien comprendre, j'ai voulu effacer mon module pour le recrée à l'identique mais toujours la même erreur finalement j'ai juste modifier le nom de mon module est récupérer les codes de l'ancien (actions, templates, config) et là tout remarche.
J'ai deux questions:
- [*1 comment effacer proprement un module a part supprimer le dossier et le code du routing?
- d'ou vient cette erreur doctrine_exception?
merci pour votre aide
Dans ce type de cas tu peux effacer manuellement tous le dossier "cache" et pas juste faire un cc.
Parfois, il semblerait que le cc laisse trainer certaines données.
merci pour ton aide, mais malheureusement ça ne vient pas de là :(
j'ai enlevé les configs du generator, supprimé mes templates et mes actions perso, verifié le routing et toujours la même erreur
voici mon erreur, il cherche la classe E alors qu'elle n'existe pas, il faut savoir que E est mon lecteur disque principal et où est installé mon serveur et symfony.
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 # at Doctrine_Table->initDefinition() in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Table.php line 249 ... 246. $this->_parser = new Doctrine_Relation_Parser($this); 247. 248. if ($initDefinition) { 249. $this->record = $this->initDefinition(); 250. 251. $this->initIdentifier(); 252. # at Doctrine_Table->__construct('E', object('Doctrine_Connection_Mysql'), 1) in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Connection.php line 1126 ... 1123. $table = new $class($name, $this, true); 1124. } else { 1125. $tableClass = $this->getAttribute(Doctrine_Core::ATTR_TABLE_CLASS); 1126. $table = new $tableClass($name, $this, true); 1127. } 1128. 1129. return $table; # at Doctrine_Connection->getTable('E') in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query.php line 1924 ... 1921. $this->_conn = $manager->getConnectionForComponent($name); 1922. } 1923. 1924. $table = $this->_conn->getTable($name); 1925. $tableName = $table->getTableName(); 1926. 1927. // get the short alias for this table # at Doctrine_Query->loadRoot('E', 'E') in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query.php line 1722 ... 1719. if ( ! isset($table)) { 1720. // process the root of the path 1721. 1722. $table = $this->loadRoot($name, $componentAlias); 1723. } else { 1724. $join = ($delimeter == ':') ? 'INNER JOIN ' : 'LEFT JOIN '; 1725. # at Doctrine_Query->load('E:\wamp\bin\php\php5.3.0\PEAR\symfony\plugins\sfDoctrinePlugin\data\generator\sfDoctrineModule\admin\parts\sortingConfiguration') in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query\Orderby.php line 80 ... 77. $componentAlias = $this->query->getRootAlias(); 78. } 79. 80. $this->query->load($componentAlias); 81. 82. // check the existence of the component alias 83. $queryComponent = $this->query->getQueryComponent($componentAlias); # at Doctrine_Query_Orderby->parse('<br /> <b>Notice</b>: Undefined offset: 0 in <b>E:\wamp\bin\php\php5.3.0\PEAR\symfony\plugins\sfDoctrinePlugin\data\generator\sfDoctrineModule\admin\parts\sortingConfiguration.php</b> on line <b>5</b><br /> asc') in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query\Abstract.php line 2077 ... 2074. if (is_array($queryParts) && ! empty($queryParts)) { 2075. foreach ($queryParts as $queryPart) { 2076. $parser = $this->_getParser($queryPartName); 2077. $sql = $parser->parse($queryPart); 2078. if (isset($sql)) { 2079. if ($queryPartName == 'limit' || $queryPartName == 'offset') { 2080. $this->setSqlQueryPart($queryPartName, $sql); # at Doctrine_Query_Abstract->_processDqlQueryPart('orderby', array('<br /> <b>Notice</b>: Undefined offset: 0 in <b>E:\wamp\bin\php\php5.3.0\PEAR\symfony\plugins\sfDoctrinePlugin\data\generator\sfDoctrineModule\admin\parts\sortingConfiguration.php</b> on line <b>5</b><br /> asc')) in SF_SYMFONY_LIB_DIR\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Query.php line 1156 ...
essaye de faire un : symfony doctrine:clean-model-files
cela ne fait rien non plus :(
je vais refaire un nouveau module mais bon il faut que je trouve d'où ça vient car ce probléme reviens régulièrement est toujours pour le même modèle.
Si je résume.
Régulièrement les requêtes doctrine (pas symfony) essayent de trouver une classe (table) E qui n'existe pas, alors même qu'elle ne figure pas dans la requête elle même.
Je pense que le fait que ce soit E et que c'est aussi un disque où ce trouve symfony est dû au hasard. Mais on ne sais jamais.
Il faut rechercher du côté du shema.yml et des requêtes utilisées. Pour commencer.
pour le schema.yml il est bon j'ai vérifié, sinon pour les requêtes utilisées tu entend quoi? car pour ce modèle j'ai utilisé l'admin generator
C'est pas compliqué.
Si tu as utilisé l'admin générator, il n'y a que 5 endroits d'où l'erreur peut venir (ce qui fait déjà beaucoup).
- Dans le shema.yml
- Dans une modification que tu as faite au modèle
- Dans une modification que tu as faite aux form
- Dans une modification que tu as faite aux filter
- Dans le generator.yml
Il y a bien une 6ème option à base de bug dans doctrine, mais je n'y crois pas.
Donc qu'as-tu modifier à ces 5 choses ?
Et je maintiens que jeter un œil au schema ne peut pas fare de mal.
j'ai modifié ces 5 choses mdr
je vais refaire le tour de tous ça pour voir si je ne trouve pas quelque chose
Une autre solution d'introspection, que j'ai déjà utilisée, consiste à créer une application test et à y rajouter petit à petit les composants de l'application d'origine. Jusqu'à ce que ce sacré E arrive.
oui c'est une solution mais je pense que je ne retrouverais pas l'erreur,
car quand je recréer un nouveau module et que je colle le code de l'ancien ça remarche très bien comme avant :koi:
Essaye de supprimer manuellement tous les fichiers généré par le "build --all" ceux dans :
[list][*]lib/model/doctrine/base[*]lib/form/doctrine/base[*]lob/filter/doctrine/base[/lost]
:weird: je viens de lancer mon appli sur google chrome, auparavant je travaillais sur firefox, et la je retrouve mon erreur alors qu'elle n'y est pas pour l'instant sous firefox comment est ce possible ????
Ce n'est pas possible.
Sauf si tu tests le nom de l'explorateur dans l'application et que tu effectues un traitement différent en fonction.
Donc, l'erreur est ailleur.
Essaye les deux en parallèle.
pourtant si c'est possible,
non je ne fait pas de traitements spécifiques,
j'ai lancé les deux navigateurs avec la même page mais non une plante et l'autre fonctionne :weird:
Je suis d'accord que c'est le résultat obtenu, mais est-ce réaliste ?
On est d'accord que l'erreur proviens de la création de la requête par doctrine, soit sur le serveur et totalement indépendant de l'explorateur.
On est d'accord que l'erreur proviens de deux sessions différentes.
Peut-être y a-t-il une différence entre ces deux sessions qui fait que l'erreur aie lieu ou pas.
Donc deux voies de recherches : comparer les paramètres sessions accessible depuis la barre de débug en mode dev : essayer de lancer deux fois la page dans le même explorateur, à la suite, pour le cas où cela serait dû au deuxième lancement.
Si tu peux, lancer deux fois la demande avec le même type d'explorateur, mais depuis deux machines différentes. Et comparer les paramètres de session.
oui on est d'accord sur tout,
il y a deux sessions mais connecté sur le même utilisateur,
ça ne peut pas venir d'un problème de cache ou de cookie du navigateur?
avec firefox je peut avoir deux fenêtre connecté sur le même module et je n'ai pas d'erreur.
dans les paramètres user j'ai juste cette ligne qui diffère
chrome:
firefox:Code:admin_module: { hardware_list.sort: ["<br />\n<b>Notice</b>: Undefined offset: 0 in <b>E:\wamp\bin\php\php5.3.0\PEAR\symfony\plugins\sfDoctrinePlugin\data\generator\sfDoctrineModule\admin\parts\sortingConfiguration.php</b> on line <b>5</b><br />\n", asc] }
dans firefox j'ai ces deux ligne en plus aussiCode:
1
2 admin_module: { hardware_list.page: '1', hardware_list.sort: [null, null], product.sort: ["<br />\n<b>Notice</b>: Undefined offset: 0 in <b>E:\wamp\bin\php\php5.3.0\PEAR\symfony\plugins\sfDoctrinePlugin\data\generator\sfDoctrineModule\admin\parts\sortingConfiguration.php</b> on line <b>5</b><br />\n", asc], reparations.sort: [null, null], software_list.sort: [null, null] } sfGuardSecurityUser: { user_id: '6' }
Code:
1
2 symfony/user/sfUser/flash: { } symfony/user/sfUser/flash/remove: { }
parfois et quand ça plante je crée un nouveau module et je colle tout dedans
J'ai déjà fais cela avec tout une application.
Je n'ai jamais compris pourquoi cela marchait après.
As-tu essayés de faire un "symfony doctrine:clean-model-files "