我希望在我跳下窗户之前有人能帮我解决这个问题。我花了几个小时在这个上,不知道我做错了什么。
基本上,我已经在 CodeIgniter 2.1.2 中安装了 HMVC,一切正常,但由于某种原因,我无法像在标准控制器中那样加载模型。在旧的 codeigniter 1.7.1 中,我可以简单地通过调用 $this->load->model('my_model') 来使用它,但现在我不能了吗?!
每次我尝试加载模型时都会收到此错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Special_cart::$db
Filename: core/Model.php
Line Number: 51
我已经按照说明一步一步地安装了它。我在模块文件夹旁边找到了第三方。在模块中,我几乎没有像这样存储的模块:
modules
--boxes
----controller
----models
----views
我在我的代码中调用模块是这样的:
<?=modules::run('boxes/special_cart/index');?>
我的模块控制器代码如下所示:
class Special_cart extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
if ($this->session->userdata('cart'))
{
# get product id's and each quantity
$cart_product_list = array_count_values($this->session->userdata('cart'));
# get list of product_id
$product_list = array_keys($cart_product_list);
# get product details
$this->load->model('productmodel');
$this->load->model('stockmodel');
$cart_products = $this->productmodel->cart_get_products_details($product_list);
$final_cart_array = array();
foreach($cart_products as $cart_product){
$product_stock = $this->stockmodel->view_product_stock($cart_product["id"]);
if(empty($product_stock) || $product_stock["UNITS"]<=0)
$cart_product["UNITS"] = 0;
else{
if($cart_product_list[$cart_product["id_web"]]>$product_stock["UNITS"])
$cart_product["UNITS"] = $product_stock["UNITS"];
else{
$cart_product["UNITS"] = $cart_product_list[$cart_product["id_web"]];
}
}
$final_cart_array[] = $cart_product;
}
$refresh_cart_array = array();
foreach($final_cart_array as $cart_product){
for($i=1;$i<=$cart_product["UNITS"];$i++){
$refresh_cart_array[] = $cart_product["id_web"];
}
}
$this->load->view("special_cart",array(
'refresh_cart_array' => $refresh_cart_array,
'final_cart_array' => $final_cart_array
));
} else {
$this->load->view("special_cart",array(
'refresh_cart_array' => NULL,
'final_cart_array' => NULL
));
}
}
}
我已经尝试了在互联网上找到的所有可能的解决方案 - 它们都不起作用......我希望你能理解我的问题,但如果你需要进一步的解释,请问我。任何人都可以帮忙吗?