使用另一个控制器 CodeIgniter 和 HMVC 中的控制器


Use controller from another controller CodeIgniter and HMVC

我想从另一个控制器加载一个函数。这是我的结构:

- modules
--orderpages
---controllers
----WebshopCore.php
----WebshopController.php

我的函数 insertItemInCart in WebshopController.php 被调用。但是当我想从另一个控制器执行一个函数时,它会崩溃。

class WebshopController extends MX_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->module('orderPages/WebshopCore');
    }
    function insertItemInCart(){
        $partId = $this->input->post('partId');
        $quantity = $this->input->post('quantity');
        $output = $this->WebshopCore->getPickLocations($partId,$quantity);  
    }
}

我的网店核心:

class WebshopCore extends MX_Controller {
    public function __construct() {
        parent::__construct();
    }
    public function getPickLocations($partId,$amount){
        $result = "test";
        return $result;
    }
}

出了什么问题?我不明白

解决方案:

$output = modules::load('orderPages/WebshopCore/')->getPickLocations($partId,$quantity);

在这种情况下,你应该写一个库。

在应用程序/库中创建购物车.php(或任何您想要的内容)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Cart
{
  protected $ci;
    public function __construct()
    {
        $this->ci =& get_instance(); 
    }
    public function getPickLocations($partId, $qty)
    {
       //Your stuff
    }
}

然后在您的控制器中:

 $this->load->library("cart");
 $data = $this->cart->getPickLocations($this->input->post('partId'), $this->input->post('quantity'));