我一直在尝试在两个 CodeIgniter 项目之间进行通信。
我有 2 个项目,比如 A 和 B。每当从 A 调用视图时,它应该击中项目 B 而不是 A 的控制器。
我想只允许数据库访问项目 B 而不是 A。所以所有数据库查询都应该由我的 B 执行,所有显示都应该由 A 完成
有没有办法做到这一点。
我一直在尝试在两个 CodeIgniter 项目之间进行通信。
我有 2 个项目,比如 A 和 B。每当从 A 调用视图时,它应该击中项目 B 而不是 A 的控制器。
我想只允许数据库访问项目 B 而不是 A。所以所有数据库查询都应该由我的 B 执行,所有显示都应该由 A 完成
有没有办法做到这一点。
您需要CI_Loader
像这样扩展类:
class ClassNameYouWant extends CI_Loader {
public function construct(){
parent::__construct();
}
public function ExtendedView($view, $vars = array(), $return = FALSE){
parent::view($view, $vars, $return);
// run your code here
// call projet B using cURL or whatever you want
}
}
如果要在加载视图之前运行代码,请调用parent::view($view, $vars, $return);
函数末尾的行。
您必须在控制器中加载类,然后使用类似的东西
$this->ClassNameYouWant->ExtendedView();
如果 CodeIgniter 的 MVC 类似于 CakePHP 的,你需要接受控制器 A 中的数据,然后使用 HTTP 套接字连接到服务器 B,并将控制器 A 中收到的数据传输到控制器 B。然后控制器 B 可以运行它的业务逻辑并将更多 JSON 数据(作为 HTTP 响应)返回给您的控制器。