处理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";
显然,我没有得到什么。 你能帮忙吗?
答案 0 :(得分:0)
你的问题是(我有同样的),这个:
$route['^(en|lv)/(.+)$'] = "$2";
覆盖您的规则:
$route['^(en|lv)/company/login'] = "login";
试试这个:
$route['^(en|lv)\/(company)\/(.+)$'] = "login";
也许它可以帮助你覆盖第一个模式
如果没有,请编辑第一个模式:
$route['^(en|lv)\/(?!company).+$'] = "$2";
答案 1 :(得分:0)
$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';