Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour , j'ai une bdd avec la liste des users avec leurs login et pass.
J'ai développé plusieurs applications qui sont soumise à authentification et mon but serait d'avoir une bdd pour la connexion et les autres bdd seraient pour les applis.
J'ai fais ceci dans mon bootstrap :
// load configuration $config = new Zend_Config_Ini('./application/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // setup database $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('dbAdapter', $db); // load configuration $config2 = new Zend_Config_Ini('./application/config.ini', 'authentification'); $registry2 = Zend_Registry::getInstance(); $registry2->set('config', $config2); // setup database $db = Zend_Db::factory($config2->db->adapter, $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('authentification', $db);
dans mon config.ini j'ai :
[general] db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = root db.config.password = db.config.dbname = besoin [authentification] db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = root db.config.password = db.config.dbname = auth
Dans mon controller Auth de mon appli j'ai ceci :
Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable'); $dbAdapter = Zend_Registry::get('authentification');
il trouve bien la bdd mais ensuite une fois le login effectué quand je redirige vers indexController j'aimerai bien redispatcher sur ma bdd général.
Vue que j'utilise des requetes comme ceci :
$fourniture=new Fournitures();
$where="quantite < 5";
$result=$fourniture->fetchAll($where);
Je ne sais pas redispatcher sur la bonne bdd
Vous avez une idée ?
Hors ligne
Le "problème" c'est cette ligne de code en double
Zend_Db_Table::setDefaultAdapter($db);
Elle indique à tes Zend_Db_Table d'utiliser cette base par default. A toi de bien indiquer une seule fois ta base générale. Je pense que ça devrais suffire.
Hors ligne
ah d'accord merci ,
Mais si je veux utiliser une base secondaire juste pour l'authentification , comment je fais ?
Hors ligne
$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Registry::get('authentification'));
Quelque chose du genre, ça devrait t'aider !
PS: Pour tes noms de variables dans ton registre, utilise des noms plus travaillés même si ça peut paraître lourd, c'est peut être plus propre. Genre 'Monapp_Db_Adapter_Auth'. Enfin j'dis ça, j'dis rien
Hors ligne
Pour ma part je fais comme ceci :
class Model_DbTable_MaTable extends Zend_Db_Table_Abstract { public function init() { $this->_db = Zend_Registry::get("2edb"); } ............. }
Hors ligne