Передать переменную в контроллер codeigniter по умолчанию

0

У меня есть настройка codeigniter с контроллером по умолчанию. Он доступен следующим образом:

site.com/index.php 

Но это на самом деле:

site.com/project/index

Где индекс является функцией по умолчанию.

Я хотел бы сделать следующее:

site.com/project7362

Но он действительно хочет:

site.com/project/index/project7362

Где имя проекта - это переменная, которая переходит в функцию индекса. Но по умолчанию он ищет имя проекта в качестве контроллера. Есть ли способ избежать этого?

По сути, я надеюсь, что это передать переменную непосредственно после имени домена. Пользователь может создать проект, и я хочу, чтобы этот проект был доступен в domain.com/project_id

Теги:
codeigniter
url

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню