Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je souhaite crée une requête avec 2 Tables, mais avant de testé une jointure, j'aimerais vérifer si le modèle en question est capable de lire une autre table alors que le modèle en question n'appartient pas à cette table.
voici 2 table
CREATE TABLE IF NOT EXISTS `admin` ( `id_user` int(11) NOT NULL AUTO_INCREMENT, `nom` varchar(50) NOT NULL, `droit` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
CREATE TABLE IF NOT EXISTS `image` ( `id_image` int(11) NOT NULL AUTO_INCREMENT, `id_user` int(11) NOT NULL, `url` varchar(10) NOT NULL, PRIMARY KEY (`id_image`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
voici le modèle image, c'est avec ce modèle que je souhaite qu'il puisse avoir accès la table Admin
class Application_Model_DbTable_Image extends Zend_Db_Table_Abstract { protected $_name = 'image'; protected $_primary = array('id_image'); /* * Références (FK) */ protected $_referenceMap = array( //// Référence à la table "Admin" 'Admin' => array( 'columns' => 'id_user', 'refTableClass' => 'Application_Model_Table_DbTable_Admin', 'refColumns' => 'id_user' ) ); }
Pour le moment j'affiche le résultat dans mon controller, ici je vérifie juste si j'arrive à lire un champ de la table image
<?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { $table = new Application_Model_DbTable_Admin(); $users = $table->fetchAll(); foreach ($users as $user) { echo $user->url;//on lit le champ url de la table image } } }
ici pas de problème cela fonctionne, le lit tous les urls
maintenant j'essaye d'utiliser le même modèle Image mais j'essaye de lire une donnée dans la table admin
class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { $table = new Application_Model_DbTable_Admin(); $users = $table->fetchAll(); foreach ($users as $user) { echo $user->nom;//on lit le champ nom de la table admin } } }
ici cela ne fonctionne pas
An error occurred Application error
comment faut t'il faire pour que j'arrive à faire ce test? merci de me guider
merci d'avance pour la réponse
Dernière modification par keokaz (30-07-2011 23:16:22)
Hors ligne
Tu as du te tromper dans tes copier/coller car les deux codes sont identique ^^
Hors ligne
merci de ton aide, j'ai finalement laisser tomber j'ai fusionner mes 2 tables, il faut que je me concentre sur doctrine.
Hors ligne
Doctrine 1 ou 2 ?
Hors ligne
pour ce projet je vais fusionner juste mes 2 tables sans utliser doctrine, c'est la prochaine fois que j'utiliserai doctrine, par contre je crois que c'est le 2 ? j'avais déjà étudier sur symfony.
Hors ligne
Pages: 1