代码之家  ›  专栏  ›  技术社区  ›  Smandoli

代码点火器-无法使用对象

  •  1
  • Smandoli  · 技术社区  · 15 年前

    总结:

    当我调用…/index.php/product时,我收到:

    致命错误:调用成员函数 在中获取非对象的\u prod \u single()。 /var/www/sparts/main/controllers/product.php 在线16

    第16行是:

    $data['pn_oem'] = $this->product_model->get_prod_single($product_id);
    

    看起来我不知道怎么把它变成一个工作对象。你能帮助我吗?

    代码:

    在我的 模型 文件夹我有 产品型号.php :

    <?php
    class Product_model extends Model {
    
        function Product_model()
        {
            parent::Model();
        }
    
        function get_prod_single($product_id)
        {
            //This will be a DB lookup ...
            return 'foo';  //stub to get going
        }   
    }
    ?>
    

    在我的 控制器 文件夹我有 产品PHP :

    <?php
    class Product extends Controller {
    
        function Product()
        {
            parent::Controller();
        }
    
        function index()  {
    
          $this->load->model('Product_model');
    
          $product_id = 113; // will get this dynamically
    
          $data['product_id'] = $product_id;
          $data['pn_oem'] = $this->product_model->get_prod_single($product_id);
    
          $this->load->view('prod_single', $data);
        }
    }
    ?>
    
    3 回复  |  直到 15 年前
        1
  •  1
  •   ronaldosantana    15 年前

    我认为这个$this->load->model(“product_model”)将创建一个名为product_model而不是product_model的模型…PHP区分大小写。

        2
  •  3
  •   Favio    15 年前

    只是改变:

    $this->load->model('Product_model');
    

    到:

    $this->load->model('product_model');
    

    似乎传递给加载程序的名称引用了文件名。

        3
  •  1
  •   yretuta    15 年前

    CI的模型名称区分大小写,因此“产品\模型”而不是“产品\模型”将起作用。如果你想,你可以设置一个别名,如果我没记错的话,它会像

    $this->load->model('product_model', 'Product_model');
    

    那也会起作用的。

    编辑:别名中有轻微的错别字。固定的

    推荐文章