在codeigniter中在控制器中加载模型时出错:消息:未定义属性:Cart :: $ load

时间:2013-07-02 08:20:05

标签: php codeigniter

我是codeigniter的初学者,目前我正在购买购物车,从http://net.tutsplus.com/tutorials/php/how-to-build-a-shopping-cart-using-codeigniter-and-jquery/教程获取帮助。我正在使用codeigniter 2.1.3。

我收到错误:

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:Cart :: $ load

     

文件名:controllers / cart.php
  行号:7

     

致命错误:在第7行的D:\ xampp \ htdocs \ ci \ application \ controllers \ cart.php中调用非对象的成员函数model()

有人可以告诉我它为什么不起作用吗?

我的控制器的名称是cart.php

<?php
class Cart extends CI_Controller {

    public function Cart()
    {
        //parent::CI_Controller(); // We define the the Controller class is the parent. 
        $this->load->model("cart_model"); // Load our cart model for our entire class
    }

    public function index()
    {
        $data['products'] = $this->cart_model->retrieve_products(); // Retrieve an array with all products
        print_r($data['products']);
        //$data['content'] = 'cart/products'; // Select view to display
        //$this->load->view('index', $data); // Display the page
    }
}
?>

我的模型是cart_model.php

<?php
class Cart_model extends CI_Model{
    //public function _construct(){
        //parent::_construct();
    //}

    public function retive_products(){
        $query = $this->db->get("products");
        return $query->result_array();
    }
}
/* End of file cart_model.php */  
/* Location: ./application/models/cart_model.php */
?>

2 个答案:

答案 0 :(得分:2)

尝试检查您的代码。您在模型上调用retrieve_products函数,但在模型中您具有retive_products函数。

<强>控制器

public function index() {
      $data['products'] = $this->cart_model->retrieve_products(); // Retrieve an array with all products
      print_r($data['products']);

      //$data['content'] = 'cart/products'; // Select view to display
      //$this->load->view('index', $data); // Display the page
}

<强>模型

public function retive_products() {
      $query = $this->db->get("products");
      return $query->result_array();
}

答案 1 :(得分:1)

Codeigniter 2.1.3旨在支持PHP 5.2.4及更新版本。

更改类构造函数:

<?php
  class Cart extends CI_Controller {
    public function __construct()
      {
         parent::__construct();
      }

而不是

public function cart()
    {
        parent::CI_Controller();