Php 如何在codeigniter中获取发出请求的类
我的模块都扩展了后端控制器,它检查loggedin和重定向是否正确,现在我有了类FrontEnd[负责登录、注册等页面],它扩展了我的_控制器。 由于前端需要模块的方法来执行任务,因此如何为前端创建访问模块的豁免 这就是我目前拥有的Php 如何在codeigniter中获取发出请求的类,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我的模块都扩展了后端控制器,它检查loggedin和重定向是否正确,现在我有了类FrontEnd[负责登录、注册等页面],它扩展了我的_控制器。 由于前端需要模块的方法来执行任务,因此如何为前端创建访问模块的豁免 这就是我目前拥有的 class Backend_Controller extends MY_Controller { // -------------------------------------------------------------------------- p
class Backend_Controller extends MY_Controller {
// --------------------------------------------------------------------------
public function __construct() {
parent::__construct();
$this->checkLoggedIn();
}
// --------------------------------------------------------------------------
public function checkLoggedIn() {
//check if loggedin
if (!$this->auth->loggedIn()) {
//implement exclusion for FrontEnd class to allow access to methods though not logged in
if (!the class trying to access == 'FrontEnd') { //how to get refferal page
return;
} else {
redirect('login');
}
}
}
// --------------------------------------------------------------------------
}
如何获取“试图访问的类=='FrontEnd”
传统信息:
FrontEnd类生成一个具有
在此处输入代码
action=router->fetch_class()将生成someMoudleName,
但我希望它能够检测到操作来自前端类这取决于你的url,但你可以这样做
function getNameOfOriginatingClass{
$this->load->library('user_agent');
$previous_url = $this->agent->referrer();
$url_segments = explode('/',$previous_url);
echo '<pre>';print_r($url_segments);
}
函数GetNameOfOriginating类{
$this->load->library('user_-agent');
$previous_url=$this->agent->referer();
$url_segments=分解(“/”,$previous_url);
回显“”;打印($url\u段);
}
打印此结果后,你可以看到你的链接在一个数组中分解成多个部分。。通常,$url_段[3]或$url_段[4]将包含您以前的函数名,而以前的函数名将包含以前的类名,具体取决于您的url。
$this->router->fetch_class()代码>@Nouphal.M谢谢,但我已经试过了,但它不能解决我的问题。请查看编辑后的代码,以便更好地理解。FrontEnd类生成一个表单,其中包含一个action=如果您需要mthod名称,那么您可以通过$this->router->fetch_method()访问它
@Nouphal.M请检查我的编辑,前端类对扩展后端控制器的模块/方法进行远程调用。我需要后端控制器能够检测到呼叫来自前端类。我对呼叫本身不感兴趣,但对原始类感兴趣。请投票表决我的问题upThanks@BaD Developer。但我不得不修改你的答案。这个部分实际上应该是$url_segments=explode(“/”,$previous_url);