Hi,
i'm running the Zend v 1.8.? and i have a problem regarding validators. I
can't get them to load.
i think i've double checked everything but it still fails to work. Please
help me out.
I've read the other posts in this forum where people seem to have the same
problem. but no matter what i try it doesn't help. I've tried to
addprefixpath on the loader, add elementprefixpath on the form and
addprefixpath on the element. but nothing works.
is it a path problem or what? i've read chap 30 (IIRC) in the zend manual
about the Loader and i think i've followed the rules.
My include path is like this:
/var/www/pimp/application:/var/www/pimp/library::.:/usr/share/Zend/library:/usr/local/outlet-0.7/classes/outlet
my directory structure is like this:
var
www
pimp
application
configs
controllers
forms
and so on
library
Pimp
Validate
Authorise.php (file)
and everything works fine. it loads forms and views and finds controllers.
nice.
but when i want to assign a custom validator to a field in my form i receive
an error message:
-----------
Message: Plugin by name 'Authorise' was not found in the registry; used
paths: Pimp_Validate_: Pimp/Validate/:Pimp/Validate/ Zend_Validate_:
Zend/Validate/
Stack trace:
#0 /usr/share/Zend/library/Zend/Form/Element.php(1992):
Zend_Loader_PluginLoader->load('Authorise')
#1 /usr/share/Zend/library/Zend/Form/Element.php(1211):
Zend_Form_Element->_loadValidator(Array)
#2 /usr/share/Zend/library/Zend/Form/Element.php(1295):
Zend_Form_Element->getValidators()
----------
when submiting the form.
My form look like this:
--------------------
<?php
//var_dump(set_include_path('./'));
//include_once 'Zend/Form.php';
class Form_Login extends Zend_Form{
public function __construct($options = null){
parent::__construct($options);
// $loader = new Zend_Loader_PluginLoader();
// $loader->addPrefixPath('Pimp_Validate', 'Pimp/Validate/');
$this->setMethod('post');
$this->setAttrib('class','zend_form');
$username=$this->CreateElement('text','username')->setLabel('User
Name:');
$username->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'),
array('tag' => 'td')),
array('Label', array('tag' => 'td')),
array(array('row'=>'HtmlTag'),array('tag'=>'tr')
)));
// $this->addElementPrefixPath('Pimp_Validate', 'Pimp/Validate/',
'validate');
$username->addValidator('alnum')->setRequired(true)->addValidator('NotEmpty',
true)->addFilter('StringTrim');
$username->addPrefixPath('Pimp_Validate', 'Pimp/Validate/', 'validate');
$username->addValidator('Authorise');
$username->getValidator('alnum')->setMessage('Only letters and numbers
are allowed in username');
$username->getValidator('NotEmpty')->setMessage('Username cannot be
empty');
$password=$this->CreateElement('password','password')->setLabel('Password:');
$password->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'),
array('tag' => 'td')),
array('Label', array('tag' => 'td')),
array(array('row'=>'HtmlTag'),array('tag'=>'tr'))
));
$password->addValidator('alnum')->setRequired(true)->addValidator('NotEmpty',
true)->addFilter('StringTrim')->addValidator('stringLength', true,
array(6));
$password->getValidator('stringLength')->setMessage('Password is too
short');
$password->getValidator('NotEmpty')->setMessage('Password cannot be
empty');
$submit=$this->CreateElement('submit','submit')->setLabel('Login');
$submit->setAttrib('class', 'submit_log');
$submit->setAttrib('onmouseout', 'MM_swapImgRestore()');
$submit->setAttrib('onmouseover',
"MM_swapImage('images/btn-register','','images/btn-register_on.png',1)");
$submit->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'), array('tag'
=> 'td')),
array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'openOnly'=>'true'))
));
$register=$this->CreateElement('submit','register')->setLabel('Register');
$register->setAttrib('class', 'submit_reg');
$register->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'), array('tag'
=> 'td')),
array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'closeOnly'=>'true'))
));
$this->addElements(array(
$username,
$password,
$submit,
$register
));
$this->setDecorators(array(
'FormElements',
array(array('data'=>'HtmlTag'),array('tag'=>'table')),
'Form'
));
}
}
?>
--------------------
my validator looks like this:
-------------
<%php
class Pimp_Validate_Authorise extends Zend_Validate_Abstract{
const NOT_AUTHORISED = 'notAuthorised';
public function isValid($value, $context=null){
return true;
}
}
%>
-------------
it's located in var/www/pimp/library/Pimp/Validate/Autorise.php
what am I doing wrong?
any help appreciated and thanx in advance.
kim
--
View this message in context:
http://www.nabble.com/Cannot-get-validator-to-load-tp23888565p23888565.html
Sent from the Zend Framework mailing list archive at Nabble.com.