2012-06-13 2 views
2

$route['(:any)'] = 'pages/view/$1';

을 사용하고 내가 예를 들어 내 라우팅에서 다른 컨트롤러를 사용하려면 : 그것은 작동하지 않습니다

$route['del/(:any)'] = 'crud/del'; 

. 나는 항목을 삭제하는 경우가

pages/view/del/$1

와 나의 CRUD 컨트롤러를 사용합니다 같아요. 이 문제를 어떻게 해결할 수 있습니까?

$route['del/(:any)'] = 'crud/del'; 
// Other routes as needed... 
$route['(:any)'] = 'pages/view/$1'; 
+0

$ route [ '(: any)/(: any)'] = '(: any)/(: any)/인덱스'를 사용할 수 있습니까? – lyhong

답변

8

, $route['(:any)'] 그래서하기 전에 다른 사용자 지정 루트에게 "캐치 모든"경로를 을 배치, 어떤 URL을 일치합니다 나는 그것이 오래된 질문이라는 것을 알고 있지만, 나는 나 자신을 멋진 해결책으로 생각했다. 기본적으로

는 CodeIgniter는 URL의 경로를 설정 (직선 컨트롤러 등의 방법이 지정된 경우에도)에서 우선 순위를 부여, 그래서 나는이 우선 순위 이런 식으로 반전했다 :

system/core/Router.php에서 _parse_routes 방법을 찾을 수 있습니다.

문자 경로 매치에서이 코드를 추가

$cont_segments = $this->_validate_request($this->uri->segments); 
if ($cont_segments == $this->uri->segments) { 
    return $this->_set_request($cont_segments); 
} 

나는 우리가 시스템/코어에서 파일을 편집하기 때문에이 방법이 좀 잘못된 것, 동의,하지만 난 많은 작업을 할 수있는 빠르고 soluttion 필요 URL

+0

정말 고마워요! :) 나는 그것에 대해 생각하지 않았다. – user1454771

+1

@ user1454771 : 환영합니다! 내가 당신을 도왔 기 때문에 기쁩니다. –

0

일 자사의 백퍼센트

$route['(:any)'] url is placed last in your routes file 

$route['(:any)/company_product_deal_detail'] = "mypage_product_picture/deal_detail/$1"; 
$route['(:any)/company_service_deals/(:any)'] = "mypage_service_deal_list/index/$1"; 
$route['(:any)/company_service_deals'] = "mypage_service_deal_list/index/$1"; 

$route['(:any)'] = "company/index/$1"; 
관련 문제