我一直在研究这个问题几个小时,但是徒劳无功......我有一个Zend应用程序,这些是两个类:
class Application_Form_Disciplines extends Zend_Form {
public function init() {
$this->addElementPrefixPath('My_Validate', '../library/validate', 'validate');
...
$credits->addValidator('My_Validate_NumericBetween');
...
}
}
class My_Validate_NumericBetween extends Zend_Validate_Abstract
{
...
}
问题是,当我提交表单时,我在注册表中找不到“按姓名插入'My_Validate_NumericBetween';使用的路径:My_Validate_:../ library / validate / Zend_Validate_:Zend / Validate /”。名为“My_Validate_NumericBetween”的类可在project / library / validate中找到。我在网上尝试了很多东西,但没有任何效果。
谢谢!
答案 0 :(得分:1)
尝试:
$this->addElementPrefixPath('My_Validate', APPLICATION_PATH . '/../library/validate', 'validate');
$credits->addValidator('NumericBetween');
旁注:典型的PSR-0类名/文件方案是将类My_Validate_NumericBetween
存储在文件library/My/Validate/NumericBetween.php
中,而不是library/validate/NumericBetween.php
(我推断你正在使用)。
答案 1 :(得分:0)
将它放在Bootstrap.php
中,它将来会为你节省一些打字
Zend_Loader_Autoloader::getInstance()->registerNamespace('My_');
答案 2 :(得分:0)
将文件重命名为NumericBetween.php
类名应保留为My_Validate_NumericBetween