我正在尝试使用活动记录和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
}
但在发布表格后我收到了以下错误
**消息:未定义属性:新闻:: $ newsModel
文件名:controllers / news.php行号:29 **
内部模型我有这个方法
function createData($data)
{
$this->db->insert('News', $data);
return;
}
我在这里做错了什么?
答案 0 :(得分:2)
根据CodeIgniter文档,模型类名称必须以大写字母开头,其余名称为小写。
请参阅:http://ellislab.com/codeigniter/user-guide/general/models.html
标题为模型剖析:
的部分类名必须首字母大写,其余名称小写... 文件名将是您的类名的小写版本。
在您的情况下,newsModel
违反了规则,CodeIgniter名称解析器可能找不到类(或相关的.php文件),这就是为什么它认为newsModel
是属性(那不存在。)
答案 1 :(得分: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();
}
答案 2 :(得分:-1)
这是CI2非常常见的问题。这个函数必须在你的一个模型中吗?
如果是,请注意u can't reference model from inside other model
!由于某些原因。你需要让控制器处理