我正在使用codeigniter创建一个restapi,我遇到了一些路由问题。
以下是等式:
我必须将/users/
导航到索引函数
我必须将/users/{MongoId}
导航到/users/show/{MongoId}
,
我必须将/users/function
导航到/users/function
。
在这里,我的路线:
$route['api/users/do_login'] = "api/users/do_login";
$route['api/users/(.*)'] = "api/users/show/$1";
当我删除(.*)
路由(或两者)时,我的do_login函数成功运行。但不是我的api-index函数,因为Codeigniter将MongoId作为函数名并失败。
当我写回(或两者)时,我的索引功能成功,但我的登录没有。 因为它试图发送函数名称来显示函数作为参数。
你能帮我解决一下吗?
答案 0 :(得分:1)
反转routes
的顺序,CodeIgniters
路线的优先顺序。
你寻求这种结构:
$route['api/users/(:any)'] = "api/users/show/$1";
$route['api/users/do_login'] = "api/users/do_login";
也使用它们是相同的。(:any)
代替(.*)
答案 1 :(得分:0)
这里是工作路线。
$route['api/users/do_login/(:any)'] = "api/users/do_login/$1";
$route['api/users/(:any)'] = "api/users/show/$1";