CodeIgniter:在另一个实例

时间:2018-01-12 13:29:22

标签: codeigniter

我有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。有一个简单的方法吗?

非常感谢

2 个答案:

答案 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中创建一个事务。