0

从过去两个月开始,我正在使用 codeigniter 进行开发。但是,当我今天将代码推送到 Web 托管站点时,我收到了这个错误。我检查了 100 次的几件事:

  • 控制器方法说$this->load->model('myModel');
  • 在我的模型文件夹中myModel.php
  • 它开始于
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br/>

class MyModel extends CI_Model {
  public function __construct()
  {
   parent::__construct();
  }

我检查了拼写错误或一些拼写错误,但一切似乎都很好。

4

4 回答 4

1

模型名称应为小写:mymodel_model.phpon /application/models/directory。

mymodel_model.php 包含:

class Mymodel_model extends CI_Model {
public function __construct()
{
    parent::__construct();
}

并将其称为:

$this->load->model('mymodel');

_model必须打开一个字符串:

  • 模型文件名mymodel_model.php
  • 具有第一个大写名称的类名class Mymodel_model

Codeigniter 手册的完整示例:http: //ellislab.com/codeigniter/user-guide/general/models.html

于 2013-03-08T01:18:27.683 回答
0

将模型名称全部设为小写,例如:“mymodel.php”,然后在 autoload.php 中输入此代码 $autoload['libraries'] = array('session','database'); 只需在模型中获取父构造并使其更简单,就像这段代码一样。

 <?php
    class MyModel extends CI_Model
    {    
        public function functionName()
        {


        }
    }
于 2013-03-08T04:16:21.387 回答
0

模型文件名应全部小写。@ddjikic 的回复是正确_model的,没有必要。

于 2013-03-08T14:27:03.153 回答
0

我正在使用 codeigniter 3.0.0,当我将应用程序托管到生产站点时,我在应用程序中遇到了同样的问题。我使用错误中提到的大写文件名(第一个字母)来拯救它。

大写和小写文件名取决于不同的托管服务器。

我刚刚将文件名的第一个字母大写,它对我来说很好用。我不知道我的托管服务器有什么设置。但它对我有用。你也可以试试,希望能解决你的错误。

例子:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Enquiry_model extends CI_Model
{
}

如上例所示,当它给我错误时,我的文件名是enquiry_model.php 。但后来我将它重命名为Enquiry_model.php并解决了我的错误。

于 2015-03-20T15:35:05.610 回答