0

我正在尝试连接到 /application/models 中定义的名为 user.php 的模型类。以下是我的 Bootstrap 的样子:

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;
    }

}

以下是我的 application.ini

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

以下是我的 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);
}

以下是我的 user.php 文件:

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);
}

}

奇怪的是,我在 Windows 上开发,一切运行良好,但是当我将相同的代码推送到我的 ec2 linux 实例时,我得到了这个致命错误。

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

我经历了很多关于堆栈溢出的问题并尝试了其中的大部分,但我还没有接近解决这个问题。任何帮助,将不胜感激。

4

1 回答 1

1

我能够解决上述问题,这是由于 linux 区分大小写。我用首字母大写重命名了我的模型,并且能够在我的控制器中访问它们。

用户.php -> 用户.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_'
                    )
            )
    ));
于 2013-07-22T07:16:27.280 回答