从另一个控制器使用控制器CodeIgniter和HMVC
问题描述:
我想从另一个控制器加载一个功能。这是我的结构:从另一个控制器使用控制器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);
}
}
我WebshopCore:
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);
答
你应该写在这种情况下,一个图书馆。
在应用程序/库创建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'));
+0
是的,这是一个选项,但我已阅读这篇文章http://stackoverflow.com/questions/14947261/codeigniterhmvc-跨模块调用控制器方法是hmvc模型可以在更短的时间内完成此任务。 – da1lbi3
IMO,调试:'的var_dump($这个 - > WebshopCore, __FILE __.__ LINE __);紧接在'$ output = ....'之前。 Yopu应该看到WebshopCore对象。 –
@RyanVincent NULL字符串(107)“/Applications/AMPPS/www/cart.local/application/modules/orderPages/controllers/WebshopController.php19”这就是我回到 – da1lbi3
@RyanVincent我已经做到了 – da1lbi3