我正在尝试连接到名为 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/