2012-03-23 92 views
1

我一直在研究這個好幾個小時,但不成功......我有一個Zend應用程序,這些都是兩班從它: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中。我已經嘗試了很多網上發現的東西,但沒有任何工作。

謝謝!

+1

什麼是PHP文件名My_Validate_NumericBetween類? – Weltschmerz 2012-03-23 17:02:21

+0

它與課程相同,My_Validate_NumericBetween – 2012-03-23 20:45:11

回答

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(我推斷您正在使用)。

+0

它不工作......我仍然得到「未找到插件」...我必須在Bootstrap類或application.ini中寫些東西嗎? – 2012-03-23 21:27:59

+0

我從[這裏](http://stackoverflow.com/q/9841149/131824)看到你的文件名是'My_Validate_NumericBetween,php';這不會奏效。切換到'library/My/Validate/NumericBetween.php'。 – 2012-03-23 23:45:34

+0

它現在正在工作...文件的名稱是最後一個問題...非常感謝你... – 2012-03-24 08:58:59

0

Bootstrap.php將這個,它會爲你節省一些打字,將來也

Zend_Loader_Autoloader::getInstance()->registerNamespace('My_'); 
+0

問題仍然存在:| – 2012-03-23 14:57:07

0

文件重命名爲NumericBetween.php

類的名稱應保持My_Validate_NumericBetween

相關問題