Php 代码点火器中的跳跃控制器
我想有一个动态路由的形式 基本上我想要捕捉404(通过routes.php 404_覆盖完成) 这很容易 但是我想做的是通过一系列的检查 e、 g不要注意Php 代码点火器中的跳跃控制器,php,codeigniter,controller,routes,Php,Codeigniter,Controller,Routes,我想有一个动态路由的形式 基本上我想要捕捉404(通过routes.php 404_覆盖完成) 这很容易 但是我想做的是通过一系列的检查 e、 g不要注意是_xxx函数不是从任何地方来的 这是一个非常基本的例子 所以我的问题是,, 一旦做出决定,我将如何重新路由到其他控制器?广义而言,使用CodeIgniter这样做有点混乱。来自java的RequestDispatcher.forward()负责处理这类事情,但在PHP空间中,它通常是重定向():通常没有服务器端基础设施(有效地)将请求从一个P
是_xxx
函数不是从任何地方来的
这是一个非常基本的例子
所以我的问题是,,
一旦做出决定,我将如何重新路由到其他控制器?广义而言,使用CodeIgniter这样做有点混乱。来自java的RequestDispatcher.forward()负责处理这类事情,但在PHP空间中,它通常是重定向():通常没有服务器端基础设施(有效地)将请求从一个PHP文件传递到另一个PHP文件,而无需客户端往返 通过谷歌的眼睛看:是一个与一个声称让你这么做的CI助手的长时间讨论,是一个似乎真的这么做的库
让我知道这两种方法是否可行:重构它们可能会更好,但过一段时间后会变得单调乏味,因此我可以理解将处理传递给另一个控制器的愿望(如果不需要的话,为什么还要麻烦往返)。干杯,非常有用,但说真的,我确信,正确的动态路由是最受欢迎的特性之一……那就好了:不确定是否有任何PHP框架能够以本机方式管理它。
$what = $this->uri->segment(1);
if(is_vanity_name($what)){
//now I want to route this to the profile controller and call the display function like so
//display('vanity', $what);
}
elseif(is_region_name($what)){
if(($deal = $this->uri->segment(2)) !== false){
//now I want to route to the deals controller can call the display function like so
//display($deal, $what);
}
else {
//now I want to route to the deals controller and call the daily function like so
//daily($what);
}
}
elseif(is_deal_name($what)){
//now I want to route to the deals controller and call the display function like so
//display($what);
}
else{
$this->load->view('errors/404');
}