gpt4 book ai didi

php - 在类中找不到Codeigniter方法

转载 作者:行者123 更新时间:2023-12-02 06:59:07 24 4
gpt4 key购买 nike

我刚刚开始学习CodeIgniter。我有一些PHP背景,但没有OOP。因此,我已经从他们的网站下载了CI,并开始按照用户指南进行操作,但是却遇到了类似的问题

Message: Undefined property: News_model::$load

Filename: models/news_model.php

Line Number: 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();
}
}

最佳答案

模型应该扩展CI_Model类。

class News_model extends CI_Model { /* ... */ }

但是,使用 Controller 时,当您覆盖 __construct方法时,需要调用 CI_Controller类的 __construct方法:

class News extends CI_Controller {

public function __construct()
{
// Call CI_Controller construct method first.
parent::__construct();

$this->load->database();
}
}

由于您要覆盖继承者类中的 __construct()方法,因此应首先调用父构造函数。

否则,在 Controller 初始化时,您将丢失 Loader and Core 类,并且 $this->load将永远无法工作。

关于php - 在类中找不到Codeigniter方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25323223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com