【问题标题】:Codeigniter routes not working, possibly because of internationalization?Codeigniter 路由不起作用,可能是因为国际化?
【发布时间】:2015-05-18 13:50:16
【问题描述】:

从事 codeigniter 项目。 被路线卡住了。 我想通过en/login访问en/company/login,那我该如何定义路由呢?

现在路由代码如下所示:

// URI like '/en/about' -> use controller 'about'
$route['^(en|lv)/(.+)$'] = "$2";

// '/en', '/lv' URIs -> use default controller
$route['^(en|lv)$'] = $route['default_controller'];

$route['company/login'] = "login";

试过了:

$route['^(en|lv)/company/login'] = "login";

显然,我没有得到任何东西。 你能帮忙吗?

【问题讨论】:

    标签: php codeigniter routes


    【解决方案1】:

    你的问题是(我也有同样的问题):

    $route['^(en|lv)/(.+)$'] = "$2";
    

    覆盖您的规则:

    $route['^(en|lv)/company/login'] = "login";
    

    试试这个:

    $route['^(en|lv)\/(company)\/(.+)$'] = "login";
    

    也许它应该可以帮助您覆盖第一个模式

    如果没有,请将第一个模式编辑为:

    $route['^(en|lv)\/(?!company).+$'] = "$2";
    

    【讨论】:

    • 这一行 '$route['^(en|lv)\/(company)\/(.+)$'] = "login";',没有帮助,第二行 '$路线['^(en|lv)\/(?!company).+$'] = "$2";'破坏了一切,现在一切都被路由到默认控制器:/
    【解决方案2】:
     $route["(en|fr|gr)/(:any)/login"] = "login/index/$1";
    

    --

     public function index($company)
     {
           $language = strtolower($this->uri->rsegments[3]);
    
            if(!in_array($language, ['en', 'fr'])){
                // set a default language
                // if the route does not provide a valid one
                $language = 'en';
            }
    
            // Load the language file for the selected language
            // for example english, language/en/en_lang.php
            $this->lang->load($language, $language);
    
    }
    

    感谢您的回答,但我似乎没有解释 /company/ 是控制器,/login/ 是“公司”功能。您的 解决方案对我不起作用。 :/

    // The $route should contain the uri,
    // you seem to have them mixed up.  
    // $route['uri'] = "controller/method"
    $route['(en|lv)/login'] = 'company/login';
    

    【讨论】:

    • 感谢您的回答,但似乎我没有解释 /company/ 是控制器而 /login/ 是“公司”功能。你的解决方案对我不起作用。 ://
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2013-04-05
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多