2010-07-31 5 views
0

필자는 HVMC 모듈 식 확장 기능을 사용하고 있으며 작동 방식은 훌륭했지만 사용 방법을 알아내는 데 어려움이 있었으며 HVMC에서 URL 라우팅을 사용할 수 있는지 알아 보았습니다.Codeigniter HVMC 모듈 식 분리 확장 URL 다시 쓰기/라우팅

기본적으로 나는 "사이트"라는 모듈을 가지고 있는데, 이는 내 기본 사이트 컨트롤러입니다. 내가 직접 사용하지 않는 다른 모든 모듈은 echo 모듈 :: run ('controller/method')을 호출하여 사용하고 있습니다. - 기본적으로 URL에서 "site"를 제거하여 모든 메소드 사이트 모듈/컨트롤러 내에서 "사이트"라는 단어가 표시되지 않습니다.

HVMC 모듈 식 확장으로이 작업을 수행 할 수 있다고 누가 알 수 있습니까?

많은 도움을 주셨습니다.

+0

안녕하세요 Thrice801이 방법을 찾으셨습니까? – hairynuggets

답변

1

나는이 문제에 대한 내 자신의 솔루션을 연구하고 있으며 URI 문자열의 "site"접두사 제거는 routes.php 구성 파일에 다음을 추가하여 수행 할 수 있습니다.

$route['(:any)'] = "site/$1"; 
$route['default_controller'] = "site"; 
+0

안녕하세요 simnom 당신 uri 문자열에서 사이트 접두사를 제거하는 추가 솔루션을 찾았나요 ??? – hairynuggets

0

또한 CI HMVC에서 3 년 동안 근무했으며 라우팅 예제 중 일부는 거기에 있습니다. 도움이 될 수 있습니다.

저는 여기에서 2 가지 유형의 모듈을 정의합니다. 하나는 사이트이고 다른 하나는 admin입니다. 관리 용

1> 라우팅 : 사이트

/*ADMIN is a constant, you can define anything like admin or backend etc. */ 
/*Example: admin/login*/ 
$route[ADMIN.'/([a-zA-Z]+)'] = function($controller){ 
    return 'admin/'.strtolower($controller); 
}; 

/*Example: admin/user/listing*/ 
$route[ADMIN.'/([a-zA-Z]+)/(:any)'] = function($controller, $function){ 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)); 
}; 

/*Example: admin/user/edit/LU1010201352*/ 
$route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) { 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param; 
}; 

/*Example: admin/user/assign-group/LU1010201352/G2010201311*/ 
$route[ADMIN.'/([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1){ 
    return 'admin/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1; 
}; 

2> 라우팅 :

$route['([a-zA-Z]+)'] = function($controller) { 
    return 'site/'.strtolower($controller); 
}; 

$route['([a-zA-Z]+)/(:any)'] = function($controller,$function){ 
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)); 
}; 

$route['([a-zA-Z]+)/(:any)/(:any)'] = function($controller,$function,$param) { 
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param; 
}; 

$route['([a-zA-Z]+)/(:any)/(:any)/(:any)'] = function($controller,$function,$param,$param1) { 
    return 'site/'.strtolower($controller).'/'.str_replace("-","_",strtolower($function)).'/'.$param.'/'.$param1; 
}; 

그것은 완전히 동적이다. 모든 모듈 안에 많은 컨트롤러를 만들 수 있습니다. 모듈을 더 추가하려면 1 또는 2와 같은 다른 라우팅 블록을 만듭니다.