2012-09-17 2 views
1

을로드 할 수 없습니다 :젠드 양식 - 나는이 같은 형태를 가지고 요소의 데코레이터 클래스 파일

class Form_RegistrationForm extends Zend_Form { 

    public function init() 
    { 

      [...] 
      $username = new Zend_Form_Element_Text('username'); 
      $email = new Zend_Form_Element_Text('email'); 
      [...] 

      $elements = array($username, $email, [...]); 
      foreach($elements as $element) { 

       $element->addPrefixPath('Form_Decorator', 'Form/Decorator', 'decorator'); 
       $element->addValidator('CustomErrors'); 

       $this->AddElement($element); 

      } 
    } 
} 

내가 /application/modules/Form/Decorator/CustomErrors.php 내 장식을했습니다. 다음과 같은 방법으로 데코레이터 이름을 지정했습니다. class Form_Decorator_CustomErrors extends Zend_Form_Decorator_Abstract

문제는 젠드가 내 데코레이터를 찾을 수 없다는 것입니다. 오류가 발생했습니다. 메시지 : 이름으로 플러그인 'CustomErrors'을 (를) 레지스트리에서 찾을 수 없습니다. 사용 된 경로 : Zend_Validate_ : 젠드/밸리데이션/

젠드가 내 정의 된 경로를 무시하는 것처럼 보이기 때문에 리터 라이트입니다.

내 appication.ini 파일 :

[production] 
phpSettings.display_startup_errors = 0 
phpSettings.display_errors = 0 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" 
resources.view[] = 
url.full = http://87.199.35.20/Kreskoweczki/bp/ 
resources.db.adapter = PDO_MYSQL 
resources.db.params.host = localhost 
resources.db.params.username = root 
resources.db.params.password = 
resources.db.params.dbname = kreskoweczki 
resources.db.params.charset = utf8 
resources.db.params.prefix = kres_ 

;Mail transport settings 

;mail.smpt - when false - sendmail is used 

mail.smtp=true 
mail.host=127.0.0.1 
mail.smtpconfig.name=localhost 
mail.smtpconfig.port=25 
;mail.smtpconfig.auth = plain | login | crammd5 
mail.smtpconfig.auth= 
mail.smtpconfig.username= 
mail.smtpconfig.password= 
[email protected] 

[staging : production] 

[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

내 index.php를 :

모든 요소에 대한
<?php 

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

// Ensure library/ is on include_path 
set_include_path(
    '../library/' . PATH_SEPARATOR .  
    '../application/modules/' . PATH_SEPARATOR .  
    '../application/' . PATH_SEPARATOR . 
    get_include_path() 
); 

/** Zend_Application */ 
require_once 'Zend/Application.php'; 

// Create application, bootstrap, and run 
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
); 

$application->bootstrap()->run(); 
+0

'$ element-> getPluginLoader ('decorator') -> getPaths()'가 반환하는 것은 무엇입니까? '$ element-> addPrefixPath ('Form_Decorator', 'Form/Decorator', 'decorator'); – Michael

답변

0

// :이 하나와

$form->addElementPrefixPath('My_Decorator', 'My/Decorator/', 'decorator'); 

가 // 덮어 쓰기 기존의 장식 하나 :

$element->setDecorators(array('CustomDecorator')); 
관련 문제