2013-07-22 3 views
0

user.php라는/application/models에 정의 된 모델 클래스에 연결하려고합니다. 다음은처럼 내 부트 스트랩이 모습입니다 : Folling 것은zend : 치명적인 오류 : 'Application_Model_User'클래스가 없습니다.

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{ 
    protected function _initAppAutoload() { 
      $autoloader = new Zend_Loader_Autoloader_Resource(array(
          'namespace' => 'Application', 
          'basePath' => APPLICATION_PATH, 
          'resourceTypes' => array(
              'model' => array(
                  'path' => 'models', 
                  'namespace' => 'Model', 
              ) 
          ) 
      )); 
      echo '<pre>'; 
      var_dump($autoloader); 
      return $autoloader; 
    } 

}

내 다음 내 IndexController.php

class IndexController extends Zend_Controller_Action { 

private $user_connection; 
private $login_status; 

public function init() { 
    /* Initialize action controller here */ 
    $this->user_connection = new Application_Model_User(); 
} 

public function indexAction() { 

    $sql = " SELECT * 
       FROM USER"; 
    $this->view->deals = $this->user_connection->select($sql); 
} 

되어 다음

phpSettings.display_startup_errors = 0 
phpSettings.display_errors = 0 
includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "Application" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.params.displayExceptions = 0 

application.ini 내 user.php 파일 :

,210
class Application_Model_User extends Application_Model_Db_Connection { 

public function __construct() { 
    parent::__construct(); 
} 

public function Connection(){ 
    return $this->getConnection(); 
} 

public function insert($data, $table = 'user'){ 
    return parent::insert($table, $data); 
} 

public function select($sql){ 
    return parent::select($sql); 
} 

}

이상한 부분이고, 나는 창문에 개발하고 모든 것이 잘 실행,하지만 난 내 EC2 리눅스 인스턴스에 동일한 코드를 누르면,이 치명적인 오류가 발생합니다.

Fatal error: Class 'Application_Model_User' not found in /var/www/html/dev/application/controllers/IndexController.php on line 11 

스택 오버플로에 대해 많은 질문을 던지고 대부분 시도했지만이 문제를 해결하기 위해 가까이 있지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

'user.php'의 이름을 'User.php'로 변경할 수 있습니까? –

+0

감사합니다 Nandkumar- 심지어 나는 똑같은 생각을했습니다. – javaadgrid

답변

1

나는 위의 문제를 해결할 수있었습니다. 리눅스의 대소 문자가 문제 였기 때문입니다. 내 모델의 이름을 첫 글자의 이름으로 변경하고 내 컨트롤러에서 액세스 할 수있었습니다.

user.php -> User.php

또한 모델에 하위 폴더를 추가하는 부트 스트랩에 다음을 추가 할 수 있습니다.

protected function _initAppAutoload() { 
    $autoloader = new Zend_Loader_Autoloader_Resource(array(
      'namespace' => 'Application', 
      'basePath' => APPLICATION_PATH, 
      'resourceTypes' => array(
        'model' => array(
          'path' => 'models/', 
          'namespace' => 'Model_', 
        ), 
        'model_db' => array(
         'path' => 'models/db', 
         'namespace' => 'Model_Db_' 
        ) 
      ) 
    )); 
관련 문제