Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai lu pas mal de doc à droite à gauche et je suis toujours dans le flou quand à la façon de mapper les données en base par rapport aux attributs d'une classe.
Par exemple si j'ai un objet utilisateur avec comme atributs "nom", "prenom" , "age", en faisant un fetchAll chaque row crée serait une instance de la class utilisateur et les données en base serait automatiquement attribuées aux attributs de ma classe utilisateur via un mapping.
Quelqu'un pourrait me dire simplement comment pourrais je faire?
Merci
Hors ligne
RTFM : http://framework.zend.com/manual/fr/zen … e.row.read
Après avec un système de méthodes settors/gettors, tu mappes le résultat de ta requête avec tes attributs.
Et pour pas te faire chier à écrire toutes tes classes : http://www.z-f.fr/code/detail/26
Tu m'as donnée des idées d'évolutions du code, c'est cool!
Genre auto-générer toutes les méthodes de récupération des résultats ainsi que les setters/getters... J'vais encore me coucher tard cette semaine.
Dernière modification par Echo (15-04-2008 15:43:16)
Hors ligne
Ouais mais j'avais bien lu tout ça (merci pour ton travail en tout cas)
En gros j'ai bien compris que le mapping des données était automatique mais il faut forcement avoir les mêmes noms en attribut de classe qu'en DB et ça c'es tpas pratique ou alors coder un méthode qui fasse le mapping sur chaque row .
Je vais regarder plus profondement ce que tu as fais...
Hors ligne
sebondus a écrit:
Ouais mais j'avais bien lu tout ça (merci pour ton travail en tout cas)
En gros j'ai bien compris que le mapping des données était automatique
Euuurf de ce que je viens de regarder dans le man (désolé après 2 semaines de Zend j'en suis encore réduit à ça)... Ta classe modèle implémente Zend_Db_table_Abstract exécute une requète dont le résultat provient de l'implémentation d'un Zend_Db_Table_Row/Rowset. Cet objet-résultat ne mappe pas ta classe modèle : d'ailleurs je n'ai pas trouvé d'accesseurs le permettant. Les seules méthodes qui te permettent de manipuler ton résultat de requète sont des méthodes Zend_Db_Table_Row/Rowset. Par extension ta classe modèle en bénéficie mais de ce que tu expliques ce n'est pas ce que tu souhaites.
sebondus a écrit:
mais il faut forcement avoir les mêmes noms en attribut de classe qu'en DB et ça c'es tpas pratique ou alors coder un méthode qui fasse le mapping sur chaque row
.
Donc à toi d'implémenter tes accesseurs entre les champs de ta BDD et les attributs de ton modèle... Dont tu pourras choisir le nom... Mais j'en vois pas l'intérêt en fait... C'est plutôt à faire dans tes classes métiers (machinController.php), nan?
Scuses-môa, je profite de ton post pour exprimer mes interrogations de newbie ZF! ^^
Dernière modification par Echo (15-04-2008 17:14:16)
Hors ligne