致力于代码点火器项目。被路线卡住了。我想通过 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";
显然,我没有得到什么。你能帮忙吗?
你的问题是(我也有同样的情况)这个:
$route['^(en|lv)/(.+)$'] = "$2";
覆盖您的规则:
$route['^(en|lv)/company/login'] = "login";
试试这个:
$route['^(en|lv)'/(company)'/(.+)$'] = "login";
也许它应该可以帮助您覆盖第一种模式
如果没有,请将第一个模式编辑为:
$route['^(en|lv)'/(?!company).+$'] = "$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';