我是否需要将自定义 Zend Validator 位置保存到“Zend/Validate”?我宁愿为我的所有自定义验证脚本创建一个文件夹,但除了更改命名空间之外,在 Zend 文档中找不到任何内容。
这是我的错误信息。
“在注册表中找不到名称为 'UserNameValidate' 的插件;使用的路径:Zend_Validate_: Zend/Validate/”
我想告诉它搜索其他路径。
我是否需要将自定义 Zend Validator 位置保存到“Zend/Validate”?我宁愿为我的所有自定义验证脚本创建一个文件夹,但除了更改命名空间之外,在 Zend 文档中找不到任何内容。
这是我的错误信息。
“在注册表中找不到名称为 'UserNameValidate' 的插件;使用的路径:Zend_Validate_: Zend/Validate/”
我想告诉它搜索其他路径。
我能够使用解决我的问题
addElementPrefixPath('Application_Validate',
'../application/validate',
'validate');
你检查过 API 文档吗?Zend_Validate 有一个 addDefaultNamespaces 方法...
public static function addDefaultNamespaces($namespace){
我通常将我的自定义验证器(例如My_Validate_Age
)保存在APPLICATION_PATH/validators
命名中,例如 . 在这种情况下,php 文件将是:APPLICATION_PATH/validators/Age.php
. 通过这个设置,我需要将验证器路径添加到 Zend_Autoloader。为此,在 Bootstrap.php 我有:
protected function _initAutoload() {
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => APPLICATION_PATH,
'namespace' => '',
));
$resourceLoader->addResourceType('validate', 'validators/', 'My_Validate_');
$autoLoader->pushAutoloader($resourceLoader);
}
希望这对您有所帮助。