문제

HMVC Modular Extension과 함께 CodeIgniter를 사용하고 있으며 웹 사이트 콘텐츠를 관리하기위한 백엔드 CMS 영역이 있습니다. 기본 URL + "Admin"을 라우팅하고 있습니다.http : // localhost/cms/admin) prefix "admin_"를 사용하여 컨트롤러 메소드에.

e.g. function admin_index() {...}

그리고 여기 내 라우팅이 있습니다.

$route['admin/([a-zA-Z]+)/(:any)'] = "$1/admin_$2";
$route['^admin/(:any)(/)?'] = "$1/admin_index";
$route['^admin(/)?'] = "dashboard/admin_index";
$route['admin/logout'] = "login/admin_logout";

HMVC를 사용하면 지금 올바르게 라우팅되지 않습니다. 다음은 다음과 같습니다.

URL: http://localhost/cms/admin/faqs
Directory: modules/faqs/controllers/faqs - index method
--
here is where it breaks
--
URL: http://localhost/cms/admin/faqs/categories
Directory: modules/faqs/controllers/faqs - categories method (does not exits)
Desired: modules/faqs/controllers/categories - index method

웹 사이트의 "관리자"를 유지하는 동안 HMVC를 어떻게 사용할 수 있습니까?

도움이 되었습니까?

해결책

당신은 동일한 컨트롤러에 프론트 엔드와 백엔드 기능을 배치하여 인생을 너무 까다 롭게 만들고 있습니다. 내 기사를 살펴보십시오 Codeigniter에서 관리자 구조를 만드는 방법.

다른 팁

나는 비슷한 일을하고 있는데, 당신이했던 것처럼 스왑을 구현했으며 (3 번째 옵션) 잘 작동했습니다.

관리자 섹션을 처리하기 위해 프론트 컨트롤러를 구현하고 HMVC 모듈을 사용하여 모듈을 실행하고 원하는대로 출력을 버퍼링하려고했지만 다른 문제에 직면 했으므로 URI 체계를 /에서 변경해야합니다. CI가 라우팅 메커니즘의 경우 "/"에 의존하기 때문에 모듈 세그먼트를 컨트롤러에 매개 변수로 보낼 수 없기 때문에 _ 또는 다른 것입니다.

Phil이 제안한대로 관리 섹션을 모방하는 유일한 방법은 CMS를 사용하는 사람이 구현 한 코드를 여전히 제어 할 수있는 또 다른 옵션이 있습니다.

CI_CONTROLLER (또는 HMVC를 사용하는 경우 MX_Controller)를 확장하고 로직을 처리하고 모듈이 수행 할 수있는 일을 제어 할 admin_controller를 추가 할 수 있습니다.

이것을 살펴보십시오 Codeigniter 기본 클래스 : 건조 유지

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top