我有两个控制器和一个模型如下,我想在侧模型中调用第二个控制器方法。但我没有得到如何称呼它。
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...
}
}
我希望有人帮助我解决它。 谢谢,
答案 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来调用控制器动作