[英]Codeigniter method not found in class
我刚开始学习CodeIgniter。 我有一些PHP背景但不是OOP。 所以我从他们的网站下载了CI并开始关注用户指南,但我遇到了一些这样的问题
消息:未定义的属性:News_model :: $ load
文件名:models / news_model.php
行号:7
在那一行是__construct()
函数
public function __construct()
{
$this->load->database();
}
同样在下一个函数db field not found in class 'News model'
并且method 'result_array' not found in class...
public function get_news($slug = FALSE)
{
if ($slug === FALSE)
{
$query = $this->db->get('news');
return $query->result_array();
}
$query = $this->db->get_where('news', array('slug' => $slug));
return $query->row_array();
}
我知道这是非常基本的,但我现在有点迷失了 。 如果有人可以解释或者至少指出我可以学习的其他好的教程,我会很高兴的。 这是完整的class News_model
class News_model extends CI_Controller {
public function __construct()
{
$this->load->database();
}
public function get_news($slug = FALSE)
{
if ($slug === FALSE)
{
$query = $this->db->get('news');
return $query->result_array();
}
$query = $this->db->get_where('news', array('slug' => $slug));
return $query->row_array();
}
}
对不起,可是:
class News_model extends CI_Controller {...}
???
是的,user2883814是正确的,CodeIgniter中的每个模型都必须只扩展CI_Model类。 所以看起来应该是这样的:
class News_model extends CI_Model
然后,您应该将模型加载到控制器以供使用。
顺便说一下,CodeIgniter中不会使用模型,而只能使用控制器和视图。
模型应该扩展CI_Model
类。
class News_model extends CI_Model { /* ... */ }
但是,使用控制器需要调用__construct
的方法CI_Controller
当你覆盖类__construct
方法:
class News extends CI_Controller {
public function __construct()
{
// Call CI_Controller construct method first.
parent::__construct();
$this->load->database();
}
}
由于您要覆盖继承者类中的__construct()
方法,因此应首先调用父构造函数。
否则,当控制器初始化时,您将丢失Loader
和Core
类,并且$this->load
将永远不会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.