plusieurs tables pour le Zend Framework 2
Je suis nouveau sur le Zend Framework 2. J'ai terminé avec succès l'Album tutoriel pour ZF2. Maintenant, je voudrais afficher uniquement certaines données provenant de plusieurs tables dans la base de données. J'ai une simple configuration de base de données avec des tables, par exemple, de la personne, de livres, de statut, etc.. Ce n'est pas vraiment important ce que la base de données est censé faire. Ce que je voudrais savoir c'est si il y a un tutoriel qui allait me montrer, étape par étape, des conseils pour afficher les données d'un tableau joint. J'ai vu des extraits de codes montrant comment faire des jointures, mais je n'ai pas trouvé de tutoriels sur la création de l'classes, et comment les configurer Module.php. En d'autres termes, le Module de l'Album a un nom de table codé en dur dans getServiceConfig(). Mais comment puis-je le configurer de sorte qu'il sait que je suis en demande de données provenant de plusieurs tables. Aussi, si je veux la configuration de la relation, dois-je créer une classe pour les tables de base de données comme dans l'Album de tutoriel, ou est-ce que ça va être quelque chose de différent. Pouvez-vous s'il vous plaît aider, ou me montrer le droit chemin? Si vous connaissez un tutoriel qui explique la manipulation de plusieurs tables, ce serait génial.
OriginalL'auteur user1828605 | 2013-02-18
Vous devez vous connecter pour publier un commentaire.
Les ablums tutoriel utilise
Zend\Db\TableGateway
qui ne prend pas en charge la participation de plusieurs tables.Vous devez utiliser
Zend\Db
directement ou par l'intermédiaire d'un mappeur de classe, commeAbstractDbMapper
dans le ZfcBase module.L'utilisation de base ressemble à ceci:
La
join()
méthode est utilisée pour effectuer la jointure entre lealbum
etartist
table. Nous utilisons également descolumns()
pour sélectionner les colonnes sont retournées. Dans ce cas, j'ai créer un alias appeléa_name
pour laname
colonne à l'intérieur de l'artiste table.Une fois le
Select
objet est mis en place, puis le reste, c'est la normeDb
code qui sera de retour uneResultSet
un objet contenant les données.Rob, couple de choses pas claires pour moi. Dois-je créer des classes pour chacune des tables que j'ai? Que dois-je faire Module.php. Je suis actuellement à la fonction publique, getServiceConfig() dans le Module comme indiqué dans l'Album tutoriel. Je ne comprends ce que vous a montré ci-dessus, mais mon problème actuel est que je ne sais pas comment faire pour commencer à parler de la base de données. Un tutoriel serait extrêmement utile. Merci
Je créer des classes pour chaque entité logique - qui ont généralement des cartes à une ligne dans une table, mais pas toujours (parfois le mappeur de toujours se joint). Je vais essayer et sortir un peu de code sur Github.
Dans les versions ultérieures de ZF2 il n'y a pas une telle méthode comme setDataSource(), mais plutôt de les initialiser(). Ainsi, au-dessus de code serait le suivant: $resultset->initialiser($driverResult);
OriginalL'auteur Rob Allen
Juste de s'étendre sur les Prive excellente réponse, simple à franchir une étape supplémentaire et de le remplir de multiples objets de la relation que vous avez besoin.
Vous devriez aussi regarder hydratant ensembles de résultats pour construire vos objets directement à partir de l'ensemble de résultats:
http://framework.zend.com/manual/2.0/en/modules/zend.db.result-set.html
OriginalL'auteur Andrew
OriginalL'auteur Xman Classical