Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
En se basant sur l'exemple du module Album, si on utilise plusieurs bases de données une de type mysql et une autre de type sqlite dans lesquelles les albums sont listés, comment fait on pour obtenir la liste complète des albums.
Le getAlbumTable() devrait retourner chaque albumTable des 2 bases de données.
Et là je coince grave, c'est à dire que je ne dépasse pas le stade du service manager de la première base de données cad la mysql:
An exception was raised while creating "Album\Model\AlbumTable"; no instance returned
j'ai essayé de bidouiller l'AdapterServiceFactory et son fameux 'return new Adapter($config['db'])' afin de pouvoir configurer les 2 bases de manière indépendante, et ainsi afin qu'il n'y aie plus qu'à mettre dans le module.config.php un array 'db" pour la base de données mysql et un array 'db1" pour la base de données sqlite, sans succès .
qqun a une idée ?
merci,
gger
Hors ligne
Bonjour,
Quelle est la ligne de code ou se situe l'erreur ?
Hors ligne
Pour ce genre de chose l'idéal est d'avoir effectivement 2 bases de données de configurée distinctement (je ne sais pas comment le faire mais j'aurai plutôt fait un array "db" qui contient 2 array de configuration). Pour que ça fonctionne tu dois avoir 2 drivers et donc 2 instances de connexion à la base de données : une pour mysql et une pour sqlite
Ce que tu dois faire pour récupérer tes Albums c'est d'avoir un service qui va avoir connaissance de ces deux instances. Tu vas devoir créer une méthode du genre : getAllAlbum(). Dans cette méthode tu vas faire 2 requêtes une sur la base mysql pour récupérer tous les albums qui y sont présents et une deuxième sur la base sqlite pour récupérer tous les albums. Une fois que tu as ces informations tu merges les 2 résultats (à toi de faire gaffe parce que tu risques d'avoir des conflits au niveau des clés sur les array que tu vas récupérer).
Pour faire ça je pense que tu as besoin de déclarer 2 albumTable et surement d'avoir une interface dont vont hérités tes deux classes pour les méthodes communes.
Hors ligne
@jf
D:\wamp\client2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:697
An exception was raised while creating "Album\Model\AlbumTable"; no instance returned
D:\wamp\client2\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:809
While attempting to create zenddbadapteradapter(alias: Zend\Db\Adapter\Adapter) an invalid factory was registered for this instance type.
Hors ligne
merci orkin
Hors ligne