2012-08-15 4 views
0

저는 CodeIgniter를 사용하고 있습니다. 여기 내 라우팅 파일기본 컨트롤러 클래스 대신 다른 컨트롤러 클래스 사용

페이지가 컨트롤러 클래스이고보기 그것의 기능이며, 가정은 그 함수에 매개 변수입니다

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

입니다.

이제 기본 컨트롤러입니다. 차라리 '집'보다 someother 페이지를 열어야 할 때 나는 뷰 내부에서 다음과 같이 그것을 이제 내가 새로운 컨트롤러를 만드는 경우, 내가 어떻게이 기능을 사용할 수 있습니다 물어보고 싶은 것을

href="<?php echo base_url('products');?> 

그 컨트롤러의? base_url() 함수에 세 번째 매개 변수 만 전달하기 때문입니다.

분명히 나는 ​​$ routes를 써야한다고 생각하지만 어떻게해야합니까? 모든 트래픽이

페이지 /보기

에 전달되기 때문에 나는 새로운 컨트롤러를 만드는 시도했지만를 사용할 수 없습니다. 나의 새로운 콘트롤은 이름 new_controller이었고, 그것은

함수 호출 new_function()를 가지고 있으며,

$ 경로 [ '페이지 /보기/제품'] = 'new_controller/new_function'다음과 같이 나는 $ 경로를 썼다 ;

답변

1

거기에있는 (: any) 경로를 없애면 경로에 대해 걱정할 필요가 없습니다. 그것은 다른 모든 컨트롤러가로드되는 것을 차단하고 있다고 생각합니다.

당신은 "물건"당신의 URL에

당신이 mysite.com/stuff/foo/param 코드 점화 기본 "페이지"컨트롤러를 무시하고

내가 생각 사용해야있다라는 컨트롤러가있는 경우 이

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

같은 일을 더 나을 그리고로 기본을 바꿀 것 전용 '페이지'에 새 컨트롤러를 열 것

보통 codeigniter 방식으로 사용하십시오

0

CodeIgniter에서 경로는 행으로 평가되므로 처음에는 기본 경로가 있고 그 다음에 새 경로 인 $ route [ 'pages/view/product']가있는 경우 if (: any) 라우트를 유지하려는 경우 (: any) 라우트 앞에 예외 라우트를 두십시오.

관련 문제