当我打电话给... / index.php / product时,我收到:
致命错误:调用成员函数 get_prod_single()在非对象中 /var/www/sparts/main/controllers/product.php 第16行
违规的第16行是:
$data['pn_oem'] = $this->product_model->get_prod_single($product_id);
看起来我不知道如何使它成为一个工作对象。你能救我吗?
在我的 / Models 文件夹中,我有 product_model.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
}
}
?>
在我的 / controllers 文件夹中,我有 product.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);
}
}
?>
答案 0 :(得分:3)
只需改变:
$this->load->model('Product_model');
为:
$this->load->model('product_model');
传递给加载程序的名称似乎引用了文件名。
答案 1 :(得分:1)
我认为这是$ this-&gt; load-&gt;模型('Product_model');将创建一个名为Product_model而不是product_model的模型... PHP区分大小写。
答案 2 :(得分:1)
CI的模型名称区分大小写,因此“product_model”而不是“Product_model”将完成此任务。如果你愿意,你可以设置某种别名,如果我没记错的话,就像
$this->load->model('product_model', 'Product_model');
本来也会奏效。
编辑:别名中的轻微拼写错误。固定强>