模型

时间:2017-10-06 09:38:53

标签: php codeigniter

我有两个控制器和一个模型如下,我想在侧模型中调用第二个控制器方法。但我没有得到如何称呼它。

1)Controller1

   class controller1 extends CI_Controller {

    function __construct() {
        parent::__construct();

        $this->load->model('job');
    }

    public function getjob() {
        $this->job->check_payment();
    }

}

2)Paypal.php(控制器)

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Paypal extends CI_Controller {

    function __construct() {
        parent::__construct();

        $this->load->model('job');

        // Load helpers
        $this->load->helper('url');

        // Load PayPal library
        $this->config->load('paypal');

        $config = array(
            'Sandbox' => $this->config->item('Sandbox'),
            'APIUsername' => $this->config->item('APIUsername'),
            'APIPassword' => $this->config->item('APIPassword'),
            'APISignature' => $this->config->item('APISignature'),
            'APISubject' => '',
            'APIVersion' => $this->config->item('APIVersion')
        );

        // Show Errors
        if ($config['Sandbox']) {
            error_reporting(E_ALL);
            ini_set('display_errors', '1');
        }

        $this->load->library('Paypal_pro', $config);
    }

    function sendPayemnt() {
        echo "Hello...";
    }

}

2)Job.php(模特)

class Job extends CI_Model {

    function check_payment() {
        // I want to call method of Paypal controller here...
    }

}

我希望有人帮助我解决它。 谢谢,

1 个答案:

答案 0 :(得分:2)

虽然技术上可行,但如果您认为需要,则表明您的应用程序设计存在缺陷。

Controller层是您应用程序的主干,用于处理来自用户的请求,与Model层对话,并将视图中的输出拼接在一起。您的模型层应该对Controller和View视而不见,但仅处理数据操作。这是对MVC模式的过度简化的解释(您可以在其他地方找到资源)。

您可以这样使用:

class controller1 extends CI_Controller{

public function testsample(){
        $this->load->model('modal1');
        $stations=$this->modal1->getController();
        echo "<pre>"; print_r($stations);exit;
    }

    public function getData(){
        $ta=array(0=>'Sample',1=>'test');
        return $ta;
    }
}

模态:

class modal1 extends CI_Model {
   function getController()
   {
        $controllerInstance = & get_instance();
        $controllerData = $controllerInstance->getData();
        return $controllerData;
   }
}

输出:

Array
(
    [0] => Sample test cases
    [1] => test
)

我将作为controller1 / testsample访问我的控制器操作 你也可以使用curl来调用控制器动作