[Zend] No database adapter present

ViPHP
ViPHP | 2291 Messages

25 janv. 2011, 18:00

Bonjour,

Je m'essaye à Zend, et dans mes différents tests je test Zend_Validate_Db_RecordExists() qui est là pour vérifier par exemple qu'une adresse email existe ou pas en base.
Donc je fais ceci
//Connexion
try
	  {
	    $db = Zend_Db::factory($config->app->database);
	    $db->getConnection();
	  }
	  catch (Zend_Db_Adapter_Exception $e)
	  {
	    echo $e->getMessage();
	  }
//Ok pas de soucis elle fonctionne
La connexion est réussie :)
puis je fais ceci
//TABLE = users
//Champ = email
$validator = new Zend_Validate_Db_RecordExists('users', 'email');
if ($validator->isValid('[email protected]'))
	 {
	  		echo "l'adresse email existe.";
	 }
	 else
	 {
	      // l'adresse email n'existe pas, affichons les messages d'erreur
		  foreach ($validator->getMessages() as $message)
		  {
		  	echo "$message\n";
		  }
	 }
Et là j'ai comme erreur
Fatal error: Uncaught exception 'Zend_Validate_Exception' with message 'No database adapter present'
Si je comprends bien il ne trouve pas la base!!!
Qui va pouvoir me dire ou je fais une erreur ??

D'avance merci
Modifié en dernier par dunbar le 04 juin 2011, 10:33, modifié 2 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

25 janv. 2011, 18:17

essaye en faisant
$validator = new Zend_Validate_Db_RecordExists('users', 'email');
$validator->setAdapter($db);

ViPHP
ViPHP | 2291 Messages

25 janv. 2011, 18:25

Salut,

Oui effectivement suis trop .......

Merci :)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

ViPHP
ViPHP | 5462 Messages

25 janv. 2011, 18:38

Salut,

Oui effectivement suis trop .......

Merci :)
enfaite faut surtout définir l'adapter par défaut, si tu veux être tranquille, dans ton bootstrap fait :
Zend_Db_Table_Abstract::setDefaultAdapter($db);

ViPHP
ViPHP | 2291 Messages

25 janv. 2011, 18:45

Oui effectivement je venais de le lire :)
Merci a toi.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.