2014-11-09 4 views
0

기본 컨트롤러가있는 codeigniter 설정이 있습니다. 그것은 다음과 같이 접근 가능 :변수를 기본 codeigniter 컨트롤러로 전달

site.com/index.php 

을하지만 실제로입니다 :

인덱스가 기본 기능입니다
site.com/project/index 

.

site.com/project7362 

을하지만 실제로 원하는 :

다음 작업을 수행 할 싶습니다

프로젝트 이름은 지수 함수에 전달할 수있는 변수가
site.com/project/index/project7362 

. 그러나 기본적으로 프로젝트 이름을 컨트롤러로 찾습니다. 이것을 피할 수있는 방법이 있습니까?

기본적으로 내가 달성하기를 바라고있는 것은 도메인 이름 바로 뒤에 변수를 전달하는 것입니다. 사용자는 프로젝트를 생성 할 수 있으며, 그 프로젝트가 domain.com/project_id

+0

안녕하세요, 아담, 사용하려는 컨트롤러의 이름은 무엇입니까? 또한 프로젝트와 프로젝트 이름을 더 명확하게 편집하여 달성하고자하는 것을 이해하십시오. – Kyslik

+0

내 컨트롤러의 이름은 "project"입니다. 편집 한 내용이 더 의미가 있습니까? – Adam

답변

1

"기본적으로 내가 달성을 기대하고있어 변수 직접 후 도메인 이름을 전달하는 것입니다. 사용자에 액세스하려면, "그것을 좋아해야하는 것이 작업을 수행하는

그래서 다른 방법으로 프로젝트를 생성 할 수 있으며, 그 프로젝트가 domain.com/project_id에 액세스하려면, .

domain.com/project/id 

이렇게하면 나중에 다른 기능을 추가하는 경로가 훨씬 더 유연 해집니다. 설정/경로에
:

$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 
관련 문제