У меня есть настройка codeigniter с контроллером по умолчанию. Он доступен следующим образом:
site.com/index.php
Но это на самом деле:
site.com/project/index
Где индекс является функцией по умолчанию.
Я хотел бы сделать следующее:
site.com/project7362
Но он действительно хочет:
site.com/project/index/project7362
Где имя проекта - это переменная, которая переходит в функцию индекса. Но по умолчанию он ищет имя проекта в качестве контроллера. Есть ли способ избежать этого?
По сути, я надеюсь, что это передать переменную непосредственно после имени домена. Пользователь может создать проект, и я хочу, чтобы этот проект был доступен в domain.com/project_id
"По сути, я надеюсь, что это передать переменную непосредственно после имени домена. Пользователь может создать проект, и я хочу, чтобы этот проект был доступен в 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