|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité régulier
![]() |
Bonjour,
Débutant en sf, je viens de crée mon interface admin. Voici mon schema.yml (réduit) Code :
J'ai essayé deux méthodes : Code :
Et donc dernier essai : Code :
public function getPageNomJoin(Doctrine_Query $q) Code :
Vous avez des idées, des choses que j'aurais mal fait ? |
||||||||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Ludovic Étudiant Inscription : janvier 2011 Messages : 124 ![]() |
Ton schéma est faux, en gros, tu as des erreurs dans tes local et foreign, tu as mis une relation en miroir (dans les deux classes) ce qui est inutile et tu t'es trompé de nom dans les relations je pense.
Doc de doctrine : http://www.doctrine-project.org/proj...rm/1.2/docs/en |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() |
j'ai fait le schéma sur MySQL Work Bench.
Jusqu'à là je n'avais pas de problème, et phpmyadmin détecte bien les relations (il me met un lien sur page_id (celui de Element) ou me fait une liste des id lors du update/new). |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Ludovic Étudiant Inscription : janvier 2011 Messages : 124 ![]() |
Les générateurs de schéma en YAML ne fonctionne pas bien. Tant que tu n'as pas un existant assez conséquent, commence toujours par crée le fichier YAML et génère la BDD à partir de celui-ci.
|
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Si je ne me trompe pas quelqu'un avait déjà fait la remarque que je vais te faire sur un autre forum à savoir : MySQL Work Bench c'est plutôt sympa pour dégrossir et avoir une base, mais rien de tel que son petit cerveau pour faire un schema propre.
Si j'ai bien compris pour un Element tu n'as qu'une Page donc quand tu te trouves dans le generator.yml de ton Element essaye voir ça tout simplement. Code :
Je te link un tuto plutôt bien expliqué qui explique dans un premier temps comment afficher le nom sur une colonne étrangère dans l'admin gen' plutôt que l'id et si tu veux pousser le bouchon plus loin ça t'explique aussi comment faire la fonction de tri sur cette colonne. http://www.elao.org/symfony/symfony-...trangeres.html |
||
|
|
10
|
|
|
#6 |
|
Invité régulier
![]() |
merci de ta réponse, mais la bdd doit être mal construite...
No description for object of class "Page" PS : j'ai plusieurs pages. |
|
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Ludovic Étudiant Inscription : janvier 2011 Messages : 124 ![]() |
J'aime pas trop faire ça, mais voila comment je vois ton schéma :
Code :
|
||
|
|
10
|
|
|
#8 | ||
|
Invité régulier
![]() |
En fonction d'autre topic, je viens de modif le schéma de la bdd :
Code :
Pouvez-vous relire et me dire ce qui ne va pas au schéma ? |
||
|
|
00
|
|
|
#9 | |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
C'est ce qu'il me semblait également.
Si tu as du one to many tu pourra voir le one dans l'admin gen du many, aussi bien dans la list que le form ou le filter. Si tu as du many to many, tu verras des listes de sélection dans le form et le filter. (du moins il me semble ... jetez-moi des cailloux si j'me trompe) EDIT : Citation:
Sinon, Symfony étant très ... "magique" ça fait pas de mal de temps en temps aller jeter un œil dans les méthodes de ta classe baseXXX que tu devrais trouver dans lib/model/base/BaseElement.class.php ou BasePage.class.php, selon ton IDE, tu auras peut-etre besoin de dérouler les commentaires de haut de page pour voir apparaitre tes méthodes magiques (tous tes accesseurs), et donc savoir ce que tu es en mesure de faire avec ton objet (je dis ça notamment pour les surcharges de widget etc). |
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() |
Question avant de regénéré model filtre et form :
Si je fait sa sans modifier la bdd coté phpmyadmin, sa devrai passé ? |
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Comment ça sans modifier la BDD ?
Si tu changes ton schema sans faire un rebuild de ton modèle ça ne changera rien du tout. Dans l'ordre tu sauvegarde ton nouveau schema, build, si tu as des fixtures tu fais un load-data et tu testes. |
|
|
00
|
|
|
#12 | ||||
|
Invité régulier
![]() |
je vien de resté avec le nouveaux schéma
Code :
Si j'utilisel e shcéma suivant, il me dit donne une erreur lors du build Code :
|
||||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() |
j'ai résolue en mettant en enlevant
#local: image_id #foreign: id Voila, merci |
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Dans ton premier schéma tu n'as pas de column element_id dans ta table Page : raison pour laquelle, lors du chargement de tes fixtures, ça te claque dans les doigts.
Dans ton deuxième schéma, le build du schéma est impossible parce que tu n'as pas de column element_id dans ta table Element pour que ta relation fonctionne (et que tu n'as pas ton mot clé "column" )Reprenons calmement : qu'est-ce que tu veux comme relation ? Ta relation entre Element et lui même me parait un peu louche. Est-ce qu'un Element a une ou plusieurs Page ? Est-ce qu'une Page a un ou plusieurs Element ? Si tu réponds à ça on peut reprendre sur un schéma propre. |
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() |
Une page est unique.
Une page peut avoir plusieurs element Un element peut avoir plusieurs image Actuellement, je suis arrivé (avec les modifications dans mon denrier post) a faire fonctionné les jointures, avec __toString A noté que dans generator.yml, si je met Page (en n'utilisant pas __toString) il me renvoie l'id. |
|
|
00
|
|
|
#16 | ||
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Alors ton schéma est faux : si un élément peut avoir plusieurs pages et une page plusieurs élément tu es dans une relation Many to Many est je ne vois aucune table intermédiaire:
Voilà comment je verrai ton schéma: Code :
|
||
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() |
je viens d'appliquer ton schéma (tu a raison sur les relations, merci !)
Seulement, lors du chargement des fixtures : Unknown record property / related component "page" on "Element" Je vais bien vérifier comment j'ai créer l'architecture : J'ai par exemple une page 1 et 2. Celle-ci vont contenir différent element (texte, slidder etc). Les élements peuvents (certain, pour l'instant que un), être commun aux deux pages. La méthode pour faire sa que j'avais utilisé est juste un model spécifique pour cette élément. |
|
|
00
|
|
|
#18 | ||||||
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
Alors maintenant que ton schema tiens la route on va faire des fixtures correctes ! D'ailleurs c'est normal que tes fixtures te claquent dans les doigts puisque le schema a changé.
On va faire un fichier de fixture par table donc trois fichiers : - 010_elements.yml - 020_pages.yml - 030_elementpage.yml Dans le premier tu ne mets que les infos propre à l'Element, pas de clé étrangère (de toute manière tu n'en as pas dans tes colonnes, tout est dans la table intermédiaire), pareille pour la deuxième : que les champs de Page. Et dans la dernière tu vas faire tes associations. Un exemple de tes fixtures : ELEMENT Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#19 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Le schéma de Nico_F légèrement rectifié.
Code :
Utilises foreignAlias systématiquement pour donner le nom à utiliser de l'autre côté de la relation. Laisser doctrine générer l'Id. Il est en integer.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#20 | |
|
Membre habitué
![]() Nicolas Développeur Web Inscription : avril 2011 Messages : 95 ![]() |
En effet Michel, merci pour la correction sur les doubles déclarations de relations (le schéma de mon projet va d'ailleurs prendre un coup de neuf dès lundi).
Par contre qu'entends-tu par Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com