我的codeigniter设置使用默认控制器。它的访问方式如下:
site.com/index.php
但实际上是:
site.com/project/index
其中index是默认函数。
我想做以下事情:
site.com/project7362
但它确实想要:
site.com/project/index/project7362
其中项目名称是传递给索引函数的变量。但默认情况下,它会将项目名称视为控制器。有没有办法避免这种情况?
基本上我希望完成的是在域名后直接传递变量。用户可以创建项目,我希望可以通过domain.com/project_id
访问该项目答案 0 :(得分:1)
"基本上我希望完成的是传递一个变量 直接在域名之后。用户可以创建项目,我 希望可以通过domain.com/project_id"
访问该项目
所以另一种方法是让它像。
domain.com/project/id
这将为您添加不同功能的路线提供更大的灵活性 在config / routes中:
$route['project/(:any)'] = 'project/view/$1';
项目控制器中的
function view($id) {
// clean it
$id = htmlspecialchars($id) ;
if ( ! $project = $this->members->returnProjectBy($id) {
$this->showNoResultsFor($id) ; }
else { $this->show($project) ; }
}
或者 - 另一种方法是将您定义的路线放在第一位,然后将项目放在最后(因为它需要搜索那里的任何内容)
$route['home'] = 'page/home';
$route['contact'] = 'contact';
// etc etc so you first define your hard coded routes, and then if its not any of those
// you do a search on whatever the value is to find a project
$route['(:any)'] = 'project/view/$1';
所以你的链接可能是
domain.com/id