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

时间:2016-03-05 14:00:38

标签: php codeigniter codeigniter-hmvc

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

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

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

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);

1 个答案:

答案 0 :(得分:0)

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

在应用程序/库中创建Cart.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'));