|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
Salut,
Je me demandais s'il était possible de mapper deux tables sur une seule classe... mon exemple : + 1 table membres avec id, pseudo, mail + 1 table rédacteurs avec membre_id, nom, prenom, site, etc je mappe ma classe membre sur la table membres, mais je ne vois pas comment mapper la classe rédacteur qui hérite de la classe membre nb : je n'ai pas fait la conception de la bdd, et je ne peux pas la modifier facilement |
|
|
00
|
|
|
#2 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
vraiment personne ?
est-ce si difficile ? ou est-ce que personne ne l'a jamais fait car il s'agit surtout un problème de conception ? |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() |
Je vois pas vraiment où est le problème
Tu as deux tables dans la base de données, non ? Alors pourquoi tu ne fais pas deux classes (Membre et Redacteur) et tu ne mappes par ça avec 2 modèles (Membres et Redacteur par exemple) ? Tu pourrais expliquer un peu plus ton problème ?
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
|
00
|
|
|
#4 | |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
Citation:
ben si je fais cela, je ne peux à partir d'un redacteur obtenir son email (qui est stocké dans membre), j'ai parfois besoin des infos qui sont dans membre et dans redacteur pour calculer quelque chose |
|
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Ouais, c'est pas pratique en effet... Je ne suis pas sûr que ce soit faisable tel quel ![]() Ce que tu peux faire, dans le modèle Redacteurs qui étend Zend_Db_Table_Abstract, c'est surcharger la méthode _fetch et là dedans rajouter toutes les infos que tu as besoin à ton enregistrement. [EDIT] Après, il faudra faire attention à aussi modifier la méthode save() de ton objet pour modifier les données partout.
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 428 ![]() |
tu crée une vue dans ta base
qui fait ta jointure et tu mappe ta Zend_Db_Table dessus tu redéfini les méthodes d'insertion suppression et de mise à jour en faisant une transaction qui insère supprime ou modifie dans les deux table et c'est fait |
|
|
00
|
|
|
#7 | |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
Citation:
c'est à cela que je pensais à l'origine effectivement... mais s'il y a moyen de ne pas toucher à la bdd, je suis preneur je testerais la méthode de witchounet d'abord à vous deux
|
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 428 ![]() |
oui mais il te faut redéfinir une multitudes de méthodes de Zend_Table
en clair tu réécrit presque tout Zend_Table A+JYT |
|
|
00
|
|
|
#9 | ||||
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
pour infos, il m'a suffit de faire ceci... mais j'aimerais bien des remarques
mon fichier application/models/CandidatController.php Code php :
et le code sql utilisé pour générer les tables, vues et procédures stockées... Code sql :
|
||||
|
|
00
|
|
|
#10 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
vraiment aucune remarque ? ça n'intéresse personne, ou y a rien à redire ?
perso, j'ai pas tapé de php depuis 2 ans, donc doit y a avoir des trucs pas très propres
|
|
|
00
|
|
|
#11 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Si, c'est intéressant. Et en plus c'est tout simple
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#12 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
j'ai essayé de faire simple en effet... mais a priori, je pense qu'il doit y avoir des failles par injections SQL là-dedans. en effet, j'ai eu du mal avec quoteInto, et je ne voulais pas utiliser les fonctions spécifiques de mysql |
|
|
00
|
|
|
#13 | ||
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Je mettais à jour la FAQ ZF et j'allais ajouter ta proposition, mais je me suis rendu compte que je fais différemment... Du coup je te soumets ma méthode ![]() Code :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
||
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 428 ![]() |
j'ai fait ceci http://sekaijin.ovh.org/?p=21 qui permet de mapper autant de table jointe que l'on veut sur une seule classe
A+JYT PS : j'ai fais ça à titre expérimental (car dans ma boite je suis encore avec ZF 1.0.3) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com