【问题标题】:How to route all module of HMVC to single controller CI如何将 HMVC 的所有模块路由到单个控制器 CI
【发布时间】:2012-11-05 19:53:19
【问题描述】:

我将 HMVC 与 CI 最新版本一起使用,并且我想将 HMVC 的所有模块路由到控制器 CI

如果我使用

$route[‘admin/(:any)’] = “admin/”;
$route[’(:any)’] = “index/index/$1”;
$route[’(:any)/(:any)’] = “index/index/$1/$2”;
$route[’(:any)/(:any)/(:any)’] = “index/index/$1/$2/$3”;

不是一个解决方案,因为一个 url 可以有很多段

我想路由控制器、方法和所有参数,像这样:

$route[’(:any)/(:any)/ *all parameters *’] = “index/index/$1/$2/ *array($parameters)*”;

或者如何停止HMVC的路线,我不需要HMVC的路线。

请帮忙。

谢谢,乔恩。

【问题讨论】:

    标签: codeigniter controller routes hmvc


    【解决方案1】:

    您不需要路由,codeigniter 已经这样做了。

    从全新的 CI 安装开始,使用 welcome 控制器:

    public function index()
    {
    
        $args = $this->uri->uri_to_assoc();
    
        echo "<pre>";
    
        print_r($args);
    
        echo "</pre>";
    
        // $this->load->view('welcome_message');
    }
    

    访问[http://localhost/codeigniter2.1.2/index.php/welcome/index/param1/param1_value/param2/param2_value/param3/etc]

    产生这个:

    Array
    (
    [param1] => param1_value
    [param2] => param2_value
    [param3] => etc
    )

    所以你有你的控制器 [welcome]、你的函数 [index] 以及之后的所有内容都是参数;无需弄乱路由。


    您不需要考虑可能被路由的每个可能的参数。

    你可以使用这样的路由:

    $route[‘admin/(:any)’] = “admin/”;
    $route[’(:any)/(:any)/(:any)’] = “index/index/$1/$2/$3”;
    

    那么除了admin/* 之外的每个URL 都会被路由到index/index。从那时起,您可以像我在上面发布的那样或通过$this-&gt;uri-&gt;segment(n); 获取参数,其中n 是您想要的段(因此,$this-&gt;uri-&gt;segment(3) 将从上面的路线返回$1)。

    【讨论】:

    • Stormdrain,我认为你没有很好地理解我的问题。我使用 HVMC 并调用一个模块我使用这个 url 我需要路由: domain.com/admin/login/sss to controller(admin)/method(login)/params domain.com/admin2/login/sss to controller( admin2)/method(login)/params ..... 和“所有”另一个到控制器/方法/参数,例如:domain.com/blog/show/2012/10/ASC 路由到类索引扩展控制器。 .. public function index($blog, $show, $params = array($year, $month, $order, ... and others){ ... } => 路由到 index/index/$blog/$show /$params 谢谢,乔恩。
    猜你喜欢
    • 2013-05-06
    • 2014-09-11
    • 2012-05-21
    • 2014-11-10
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多