Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器中的跳跃控制器_Php_Codeigniter_Controller_Routes - Fatal编程技术网

Php 代码点火器中的跳跃控制器

Php 代码点火器中的跳跃控制器,php,codeigniter,controller,routes,Php,Codeigniter,Controller,Routes,我想有一个动态路由的形式 基本上我想要捕捉404(通过routes.php 404_覆盖完成) 这很容易 但是我想做的是通过一系列的检查 e、 g不要注意是_xxx函数不是从任何地方来的 这是一个非常基本的例子 所以我的问题是,, 一旦做出决定,我将如何重新路由到其他控制器?广义而言,使用CodeIgniter这样做有点混乱。来自java的RequestDispatcher.forward()负责处理这类事情,但在PHP空间中,它通常是重定向():通常没有服务器端基础设施(有效地)将请求从一个P

我想有一个动态路由的形式

基本上我想要捕捉404(通过routes.php 404_覆盖完成)

这很容易

但是我想做的是通过一系列的检查

e、 g不要注意
是_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');
}