我有2个codeigniter实例,我想从另一个实例调用一个实例的函数。我有一个处理帐户的第一个实例(在mywebsite.com/account.php中)和第二个处理股票投资组合的实例(mywebsite.com/portfolio.php)。目标是当我在我的投资组合中注册新职位时,它将在账户实例中注册费用。
在account.php中,我有一个控制器来添加一个事务(account.php / transaction / add)。 在portfolio.php中,我有一个控制器来添加一个新的位置(portfolio.php / position / add)。
我想在控制器portfolio.php / position / add中使用一些参数(可能在POST方法中)调用account.php / transaction / add。有一个简单的方法吗?
非常感谢
答案 0 :(得分:0)
有很多方法可以解决这个问题。当多个控制器需要某些功能时,指向创建两个控制器都可以加载和使用的资源。
"资源"可能是一个模型,或者它可能是一个定制的"库",或者两者兼而有之。 (它不应该是其他控制器。)答案取决于究竟发生了什么。由于您不共享任何代码,因此无法提供准确的帮助。
因为我不得不猜测两个控制器使用的模型都能正常工作。
答案 1 :(得分:0)
感谢您的回答。你是对的,我会尝试用一些代码更准确。
基本上,当我在我的投资组合中添加新头寸时(例如:我购买50股股票AAA),我会在我的网站portfolio.php中注册。但与此同时,我想在account.php中注册一笔交易并支付费用。
这是portfolio.php / position / add:
的代码public function add()
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('portfolio', 'Portfolio', 'required');
$this->form_validation->set_rules('type', 'Type', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view(SHARED_VIEWS_FOLDER.'header', $this->data);
$this->load->view('menu', $this->data);
$this->load->view('transaction/add', $this->data);
$this->load->view('menu_bottom', $this->data);
$this->load->view(SHARED_VIEWS_FOLDER.'footer', $this->data);
} else {
$the_quantity=$this->input->post('quantity');
if ($this->input->post('type') == "sell") {$the_quantity = -$the_quantity;}
$this->position_model->addTransaction($this->input->post('portfolio'), $this->input->post('stock'), $the_quantity, $this->input->post('price'), $this->input->post('fees'), $this->input->post('date'));
//TO DO : ADD THE TRANSACTION IN ACCOUNT.PHP
redirect(base_url().'stock.php/transaction', 'refresh');
}
}
目的是将一些参数(日期,费用,库存,价格)发送到account.php以添加交易。我正在考虑调用诸如account.php / transaction / add之类的控制器,但它也可以直接调用模型transaction_model.php。
最后,我希望它的行为类似于API:portfolio.php在account.php中调用API,发送一些参数,它将在account.php中创建一个事务。