:CodeIgniter의 사용자 정의 보편적 인 라우터 클래스
$route['(.*)'] = 'router/resolve/$1';
을 : routes.php
에 추가하여
http://mydomain.com/something-here
에
http://mydomain.com/controller/method/something-here
Router
클래스를 만들고,이 클래스의 resolve()
메서드는 something-here
은 데이터베이스 테이블 (엔티티) 중 하나의 행과 일치합니다. 그렇다면 적절한 컨트롤러 :: 메서드를 호출하여 항목을로드하려고합니다. something-here
이 book
의 한 종류 인 경우
예를 들어, 나는 Book::view($id)
전화 Router::resolve()
을하고 싶습니다.
그러나 컨트롤러가 다른 컨트롤러의 메서드를 호출 할 수 없다는 것을 알고 있습니다. (그것은인가?)
가 나는 또한 book
에 Router::resolve()
(첫 번째 세그먼트)를 호출합니다 redirect("book/view/$id")
$route['(.*)']
때문에 사용할 수 없습니다.
내 목표를 달성하는 방법에 대한 제안이 있으십니까?
http://stackoverflow.com/questions/10845440/furls-with-codeigniter/10845725#10845725 – Rooneyl
과 같은 리디렉션 컨트롤러를 사용하는 것만 큼 '무엇인가'앞에 여전히 'text /'를 사용하고 있습니다. 도메인 바로 다음에 URL을 '무엇인가 - 여기'로 만들고 싶습니다. – Obay
죄송합니다. 다른 컨트롤러에서 컨트롤러 호출. 내가 생각할 수있는 가장 좋은 해결책은 HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/입니다. – Rooneyl