我的MVC框架出了问题。这是我在主控制器中的loadModel()
方法:
public function loadModel($name) {
$path = 'models/' . $name . '_Model.php';
if (file_exists($path)) {
require $path;
$modelName = $name . '_Model';
$this->model = new $modelName;
}
}
如您所见,当我尝试加载控制器时,它会自动加载带有same name + _model.php
的模型。
当我使用wamp或xampp时,我没有任何问题,但是,当我将其上传到我的网站时,它会在每个模型上显示"Undefined property"
。这意味着未加载模型。我知道问题就在那里......
这是服务器的php.ini文件中的某种错误吗?或者也许是因为PHP版本不同?
答案 0 :(得分:2)
Windows不区分大小写,即就Windows而言,Model.php和model.php是相同的。在unix / linux上(我假设您的网站服务器是)文件系统区分大小写。
基本上,请检查您的文件名称 - 如果您尝试加载$name_Model.php
,但文件为$name_model.php
,则在您上传时会失败。
答案 1 :(得分:1)
您可能需要考虑使用autoloading来修复所有问题:
答案 2 :(得分:1)
不依赖于相对路径,它们依赖于当前目录。
制定绝对路径(适应您的需求):
$path = __DIR__ . '/models/' . $name . '_Model.php';
如果你得到类似的东西在本地工作,它也应该在服务器上工作。
顺便说一句,我不明白为什么_Model后缀。不是型号/ Car.php就够了吗?