我在第8行加载Get_notes
模型,但是当我想在第23行使用Get_notes
模型加载add_notes
方法时,会发生错误并说出Undefined property: Notes::$Get_notes
在第23行!
23行有问题,但我不知道那是什么。请帮助我。
感谢
<?php
class Notes extends CI_Controller
{
public function index()
{
$this->load->model('Get_notes');
$data['notes'] = $this->Get_notes->get_mm();
$this->load->view('show', $data);
}
public function insert()
{
$title = 'Something';
$text = 'Something else';
$data = [
'title' => $title,
'text' => $text
];
$this->Get_notes->add_notes($data);
}
}
答案 0 :(得分:1)
您编写它的方式,Get_notes
模型仅在index()
函数中可用。
要使Get_notes
模型适用于单个控制器中的所有功能,请将其加载到Controller's constructor function ...
class Notes extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('get_notes'); // available to all functions within Notes
}
....
要使Get_notes
模型全局可用于任何CI控制器中的所有功能,请将其放在位于$autoload['model']
的{{1}}文件中的autoload.php
数组中...
application/config/autoload.php
→请注意,无论您以后如何引用它,都应该用全部小写编写。
$autoload['model'] = array('get_notes'); // available to all functions in your CI application
见:
如果您打算在任何控制器中使用构造函数,则必须在其中放置以下代码行:
$this->load->model('get_notes'); $this->get_notes->add_notes($data);
parent::__construct(); // Notice there is no dollar sign
是您班级的名称。类名必须首字母大写,其余名称小写。确保您的类扩展了基础Model类。
通常会在控制器方法中加载和调用模型。要加载模型,您将使用以下方法:
Model_name
加载后,您将使用与您的类同名的对象访问您的模型方法:
$this->load->model('model_name');
要自动加载资源,请打开
$this->model_name->method();
文件,然后将要加载的项目添加到自动加载阵列中。您将在该文件中找到与每种类型的项目相对应的说明。
答案 1 :(得分:0)
codeigniter模型调用区分大小写,因此需要使用
的模型$this->get_notes->a_function_inside_the_model ();
另请注意,模型文件夹中的名称应始终以大写字母开头。
每当我们在像wamp服务器这样的localhost服务器上运行codeigniter时,这些问题都不存在,但是在实时服务器上它们会存在。
希望这是有帮助的
答案 2 :(得分:-1)
您的get_notes模型仅在索引函数中加载。您无法在索引函数中加载模型并在任何其他函数中使用它而无需再次加载它。 我在想你正在尝试加载模型一次并在整个控制器中使用它。为此,您必须在__construct方法中加载它。您的代码应与此类似:
<?php
class Notes extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('Get_notes');
}
public function index()
{
$data['notes'] = $this->Get_notes->get_mm();
$this->load->view('show', $data);
}
public function insert()
{
$title = 'Something';
$text = 'Something else';
$data = [
'title' => $title,
'text' => $text
];
$this->Get_notes->add_notes($data);
}
}
答案 3 :(得分:-1)
把$ this-&gt;加载 - &gt;模型(&#39; Get_notes&#39;);在insert()函数中。
如果要全局使用它,请将其放在构造函数中。