linux - zend : Fatal error: Class 'Application_Model_User' not found

标签 linux zend-framework amazon-ec2

我正在尝试连接到名为 user.php 的/application/models 中定义的模型类。 以下是我的 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 。

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

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

最佳答案

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

用户.php -> 用户.php

还可以将以下内容添加到 Bootstrap 中,以将子文件夹添加到您的模型。

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_'
                    )
            )
    ));

关于linux - zend : Fatal error: Class 'Application_Model_User' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778955/

相关文章:

linux - 如何获取 gcc OpenMP 库的调试信息(符号)?

linux - 甲骨文 : Io exception: The Network Adapter could not establish the connection

linux - 如何在没有 PEM key 的情况下通过 ssh 进入 EC2 实例?

amazon-web-services - Amazon EC2 实例的临时存储中存储哪些数据?

linux - `/dev/ttyS0` 和 `/dev/ttys0` 之间的区别?

Linux LVM lvs 命令从 cron perl 脚本失败但直接从 cron 运行

arrays - Zend_Form 没有索引的数组符号

zend-framework - PHPUnit Zend_Test_PHPUnit_DatabaseTestCase 无法截断表

php - Zend php 在查询中设置不同

java - War 在本地独立 tomcat 7(无 eclipse)上运行良好,上传到 ec2 时不起作用