CI 묻고 답하기

제목 부모 컨트롤러에서 자식컨트롤러 찾는법
카테고리 CI 2, 3
글쓴이 오민 작성시각 2019/06/26 12:45:40
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12575   RSS

찾기가 참 어렵네요 찾는 재주가 이정도로 없을줄이야..

제 가 궁금한것은

 

만약 제가 부모 컨트롤러 를 만들어놓고 가칭 p_con

다른 컨트롤러들이 p_con 을 상속 받아 쓸때 

 

p_con 에서 자식 컨트롤러의 명칭을 알수있나요?

class child_con extends p_con{

 

function __construct(){

   $this-> main();

 }

  public function main(){

     $this->load->view('child_con/login_index_view');

   }

}

 

이렇게 되있을때 main() 로 사이트를 들어갔을때 

 

class p_con {

  function __construct(){

 %이부분%

   }

 

저 %이부분% 에서 child_con 이 지금 접속해있는 컨트롤러다 라고 잡아낼방법은없을까요? url 로 처리하는것 말고

 다음글 CI에서 멀티 DB 연결 질문 (2)
 이전글 constants.php 파일에서 session을 사... (2)

댓글

한대승(불의회상) / 2019/06/26 13:16:40 / 추천 1
당연히 알수가 없죠.
오민 / 2019/06/26 13:36:43 / 추천 0

부모 컨트롤러를 먼저타니 그렇긴한데 ..

몬가 어떠한 컨트롤러를 빼곤 나머지 컨트롤러에는 뭘 체크하는  기능을 넣어야해서용 아쉽네용 ㅠ

kaido / 2019/06/26 13:42:09 / 추천 1

일반적인 방법은 없고, 꼼수를 쓴다면야 구분은 할수 있을것 같습니다. 부모인지 자식인지 정도는 말이죠.

다만 var_dump($this); 한번 해보시면 CI 컨트롤러의 정체가 나옵니다.

어마어마한 양의 오브젝트가 묶여있는데, 컨트롤러를 상속 받아 오고 다시 로드 한다는것 자체가 그렇게 좋은건 아닙니다.

그래서 컨트롤러 상속 방법이 메뉴얼에 공개되어 있지도 않습니다.

 

어떤 작업을 하려는지는 모르겠으나, 라이브러리 이든 코어 확장이든 둘중 하나로 해결 될 문제로 생각 됩니다.

상속을 받아서 사용해야 한다면 코어확장쪽으로 한번 포커스 잡고 생각 해보시면 좋을것 같습니다.

오민 / 2019/06/26 13:53:38 / 추천 0

넵 사실 p_con이 my_controller 로

kaido 님이 말씀해주신 확장 개념인것같아요

그렇게 사용하고있긴한데 my_controller 에서만 그 해당 컨트롤러만 제외하고싶은데 어렵네요 

그래도 너무 감사합니다 좋은 의견들!