Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Bon je créé mon formulaire en utilisant pour la première fois "doctrine" et tout marche bien sauf une seule chose,quand je vérifie dans mon formulaire si l'email n'est pas répété dans la base de donnée lors de l'inscription en utilisant un validateur de cette façon :
Form.php
$primaryValidator = new Zend_Validate_Db_NoRecordExists('users', 'mail'); $primaryValidator->setMessage($translator->_("L'adresse email a déjà été utilisée"), Zend_Validate_Db_Abstract::ERROR_RECORD_FOUND); $mail = new Zend_Form_Element_Text('mail'); $mail->setLabel($translator->_('mail')) ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator($emailValidator) ->addValidator($primaryValidator) ->addValidator($emptyValidator);
il m'affiche l'erreur suivant :
An error occurred Application error Exception information: Message: No database adapter present Stack trace: #0 C:\wamp\www\zc1\library\Zend\Validate\Db\NoRecordExists.php(44): Zend_Validate_Db_Abstract->_query('s@g.com') #1 C:\wamp\www\zc1\library\Zend\Form\Element.php(1333): Zend_Validate_Db_NoRecordExists->isValid('s@g.com', Array) #2 C:\wamp\www\zc1\library\Zend\Form.php(2009): Zend_Form_Element->isValid('s@g.com', Array) #3 C:\wamp\www\zc1\application\controllers\VisitorsController.php(22): Zend_Form->isValid(Array) #4 C:\wamp\www\zc1\library\Zend\Controller\Action.php(513): VisitorsController->inscriptionAction() #5 C:\wamp\www\zc1\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('inscriptionActi...') #6 C:\wamp\www\zc1\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #7 C:\wamp\www\zc1\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch() #8 C:\wamp\www\zc1\library\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run() #9 C:\wamp\www\zc1\public\index.php(27): Zend_Application->run() #10 {main} Request Parameters: array ( 'language' => 'fr', 'controller' => 'visitors', 'action' => 'inscription', 'firstname' => 'jean', 'lastname' => 'jane', 'username' => 'jane', 'password' => '123456', 'password_confirm' => '123456', 'mail' => 's@g.com', 'lng' => 'fr', 'sexe' => 'female', 'country' => 'FR', 'recaptcha_challenge_field' => '02tmrApMAAVCXMPslkM3L4VL6uIjofgjRDlPl5wz6OduFuHMTzvD7Nfig9flm5vsLelk0fMJCYMVQ3t2L41oyA9bWIpaCi1d4kg3HWqJ5lmN5Yiq1a7Y5s40bTavkeKuRwPxx6I5ZXcr7Em5_Mu7MDxYACTF6MXE3PwSqW75Y8Ktr5aDQKKOzEbk-kNCM4bA5EkewC_Zh7aL9bDwuYR41LV53XCGbaCIgtdoxt_cRoYT29uI_HZwc7GVvryu1T3hWJ5klFgtpsLu91M9NF6k8zTWtHv7MB', 'recaptcha_response_field' => 'function blunders', 'Créer' => 'Créer', )
Je ne sais pas ou est le problème,je pense qu'il ne trouve pas la base de donnée alors que tout marche bien et je déclare correctement mes tableaux et mes champs parce que quand j'enlève la ligne "->addValidator($primaryValidator)" tout marche bien...
Merci.Nll
Dernière modification par elec (19-01-2010 10:22:47)
Hors ligne
L'erreur est pourtant simple à comprendre "Message: No database adapter present", il n'y a pas d'adapter par default Zend, vu que tu utilises doctrine et non Zend_Db, et que Zend_Validate_Db_NoRecordExists utilise une base de données...
Il faut soit coder ton adapter Zend_Db_Adapter_Doctrine (une piste là http://framework.zend.com/wiki/display/ … ation+Todo) soit coder ton propre validateur Zend_Validate_Db_NoRecordExistsWithDoctrine.
Hors ligne