Codeigniter HVMC modular seperation extension URL rewrite / routing

后端 未结 2 1337
孤街浪徒
孤街浪徒 2021-01-17 02:22

Ive been using HVMC modular extension, and its working great, but Im having trouble figuring out how to use, and if it is possible to use URL routing with HVMC.

Basi

相关标签:
2条回答
  • For completeness I have been researching my own solution to this issue and the removal of the "site" prefix on the URI string can be achieved by adding the following into the routes.php config file.

    $route['(:any)'] = "site/$1";
    $route['default_controller'] = "site";
    
    0 讨论(0)
  • 2021-01-17 02:32

    I also worked since 3 years in CI HMVC, and some of my routing examples is there, it may help you.

    I define 2 types of module here one is site and another is admin.

    1>Routing for admin:

    /*ADMIN is a constant, you can define anything like admin or backend etc. */
    /*Example: admin/login*/
    $route[ADMIN.'/([a-zA-Z]+)'] = function($controller){ 
        return 'admin/'.strtolower($controller);
    };
    
    /*Example: admin/user/listing*/
    $route[ADMIN.'/([a-zA-Z]+)/(:any)'] = function($controller, $function){ 
        return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function));
    };
    
    /*Example: admin/user/edit/LU1010201352*/
    $route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) { 
        return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param;
    };
    
    /*Example: admin/user/assign-group/LU1010201352/G2010201311*/
    $route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1){ 
        return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1;
    };
    

    2>Routing for site:

    $route['([a-zA-Z]+)'] = function($controller) {
        return 'site/'.strtolower($controller);
    };  
    
    $route['([a-zA-Z]+)/(:any)'] = function($controller,$function){
        return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function));
    };
    
    $route['([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) {
        return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param;
    };
    
    $route['([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1) {
        return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1;
    };
    

    It is totally dynamic. You can create lots of controller inside any module. If you want to add more module then you just make another block of routing like 1 or 2.

    0 讨论(0)
提交回复
热议问题