【问题标题】:what is wrong with this line?这条线有什么问题?
【发布时间】:2011-04-08 20:31:00
【问题描述】:

我是 codeigniter 的新手,我一直在试图弄清楚这一行出了什么问题

这是我的控制器

class Product extends CI_Controller{

    function index(){
        $this->load->model('product_model');
        $data['products'] = $this->product_model->get_all_products();
        $this->load->view('all_products', $data); 

    }
}

这是我的模型

class Product_model extends CI_Model {

    function get_all_products(){
        $query = $this->db->get('products');
        if($query->num_rows() > 0){
            foreach($query->result() as $row){
                $data[] = $row;
            } 
            return $data;
        }
    }
}

这是我的错误

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Product::$db

Filename: core/Model.php

Line Number: 50
Fatal error: Call to a member function get() on a non-object in /Users/matt/Sites/ci/application/models/product_model.php on line 9el.php on line 6

错误在这一行

$query = $this->db->get('products');

为什么它在 codeigniter 文档中这样描述它失败了......我也有一个产品表

【问题讨论】:

标签: php codeigniter codeigniter-2


【解决方案1】:

试试

$autoload['libraries'] = array('database');

在应用程序/config/autoload.php 中

【讨论】:

  • 如果解决了,你应该接受他的回答。仅供参考,除非你为了速度而忽略了它,否则你会错过你的构造。
  • @BrandonS:不需要构造函数。
  • @treeface:哦,我知道并且我理解这可能不是他的代码,但如果是的话,我想指出使用构造函数是有帮助的,应该是你的正常部分除了构造函数之外,OOP 过程是初始化对象的一种有效方式。我只是觉得 PHP 中的大多数人都在使用 OOP 标准的选定部分,这些部分对他们有利,而忽略了其他部分,在我看来,构造函数是 oop 的重要组成部分,不应该被忽略。但你说得对,不需要使用构造,我应该用我的评论来反映这一点。
  • @BrandonS:我有点想知道空构造函数可以获得什么好处,或者为了拥有一个构造函数而拥有一个构造函数是最佳的 OOP 实践。我也有点好奇您所说的“构造函数是初始化对象的有效方法”是什么意思。当然...如果您在构造函数中有一些事情要做(例如在您不想自动加载时加载特定于该控制器或模型的库),但除此之外..?
【解决方案2】:

你需要检查两件事

1-你没有缺少构造函数

class Product_model extends CI_Model {

    function __construct(){
      parent::__construct();
    }

}

2- 你已经加载了数据库库。转到 application/config/autoload.php 并在自动加载库中添加“数据库”。

$autoload['libraries'] = array('database');

【讨论】:

    【解决方案3】:

    你必须去自动加载并用这个$autoload['libraries'] = array('database', 'form_validation');替换$autoload['libraries']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-20
      • 2011-04-15
      • 2014-11-26
      • 2020-02-14
      • 2014-10-07
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多