0

我正在尝试使用活动记录和 codeigniter 从一些简单的表单中插入演示记录

function create_httpPost()
{
   $data = array(
      'title' => $this->input->post('title'),
      'content' => $this->input->post('content')
   );

   $this->newsModel->createData($data); //error occures here
   $this->index();//aka redirectToAction
}

但在发布表格后,我收到以下错误

**消息:未定义的属性:News::$newsModel

文件名:controllers/news.php 行号:29**

内部模型我有这个方法

function createData($data)
    {
        $this->db->insert('News', $data);
        return;
    }

我在这里做错了什么?

4

3 回答 3

2

根据 CodeIgniter 文档,模型类名称必须以大写字母开头,名称的其余部分为小写。

请参阅: http ://ellislab.com/codeigniter/user-guide/general/models.html

在标题为模型解剖的部分中:

类名的第一个字母必须大写,其余部分小写...文件名将是类名的小写版本。

在您的情况下,newsModel违反了规则,并且 CodeIgniter 名称解析器可能找不到类(或相关的 .php 文件),这就是它认为newsModel是属性(不存在)的原因。

于 2013-05-16T20:47:23.963 回答
0

尝试这个:

function create_httpPost()
{
   $this->load->model('newsModel'); // you need to load model

   $this->newsModel->createData(array(
      'title'   => $this->input->post('title', TRUE),
      'content' => $this->input->post('content', TRUE)
   ));

   $this->index();
}
于 2013-05-16T20:54:36.403 回答
-1

这是 CI2 非常常见的问题。

此功能必须在您的模型之一中,对吗?

如果是这样,请注意u can't reference model from inside other model!由于某些原因。你需要让控制器来处理

于 2013-05-16T21:06:10.120 回答