我编写了一个小型的 codeigniter 测试应用程序,当前正在我的 Windows 盒子上运行。 我创建了一个 Linux 虚拟机,并尝试在这个新的虚拟服务器上安装该应用程序。 我的一些网络应用程序运行正常,但其他部分运行不正常。 具体来说,这有效:
http://123.123.123.123/myapp/controller1/
但这不是:
http://123.123.123.123/myapp/controller2/mymethod/1/2/3
它失败并出现无法加载controller2_model的错误。
这是发生故障的 Controller 的实际代码(它实际上称为 xferLogger 与controller2):
class xferLogger extends CI_Controller {
public function __construct() {
parent::__construct();
echo(2);
$this->load->model('xferLogger_model');
$this->load->helper('date'); //this library is needed for the base_url() method that is being called in the view "result.php"
$this->load->helper('url');
}
这是模型:
class xferLogger_model extends CI_Model {
public function __construct() {
$this->load->database();
}
完整的错误消息是:遇到错误。无法找到您指定的模型:xferlogger_model。
这是我注意到的事情。在错误消息中,您会注意到记录器中的“L”是小写的。但在我的代码中,它是大写的 L。 我已经检查了我的 Controller 、模型本身以及routes.php 文件。我似乎没有发现我的外壳有任何问题。
??
最佳答案
来自用户指南:类名称的第一个字母必须大写,名称的其余部分小写。因此:
class Xferlogger_model extends CI_Model // First letter capitalised
和你的模型负载
$this->load->model('xferlogger_model'); // lower case
和你的 PHP 文件名
xferlogger_model.php // lower case
关于在 alpine linux 上使用 Apache 的 PHP Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741010/