질문 Q #23298
ci3 view 호출 질문입니다.
ci늦둥이 2021-05-17 17:52:14

안녕하세요.

ci v3 에서 view 호출 시 궁금한 사항이 있어 질문글을 남기게 되었습니다.

 

Controller 에서 아래와 같이 _remap 을 사용하여 header 와 footer 를 호출하였습니다.

 

/**
* 사이트 해더, 푸터 자동 추가
*/
public function _remap($method) {
    // 해더
    $this->_header();

    if(method_exists($this, $method)) {
        $this->{"${method}"}();
    }

    // 푸터
    $this->_footer();
}

 

그리고

function page1() { ... }

function page2() { .... }

 

이렇게 여러 페이지가 있는데

특정 페이지 (page3 이라 칭하겠습니다.) 에서 header 에 데이터를 추가해야될 일이 생겼습니다.

저의 짧은 지식으로 많은 시도를 해보았는데

_remap 을 지우고 page1, page2, page3 에서 각각 위 아래에 _header(), _footer() 를 호출해 주는것 말고는 답을 몾찾았습니다.

 

조언좀 부탁드립니다.

읽어주셔서 감사합니다.

 

답변 2
#1 변종원(웅파) 2021-05-17 18:02:50

_header() 내용이 어떻게 되어 있는지 모르기 때문에 정확한 답을 할 수 없습니다.

개념상으로는 

if(페이지3일때)

{

$data['data'] = '필요데이터';

$this->load->view('header', $data);

}

else

{

$this->load->view('header');

}

#2 ci늦둥이 2021-05-17 18:29:13

답변해주셔서 감사합니다.

_header() 는 간단합니다.

protected function _header() {
  $this->load->view('fragments/header');
}

이렇게만 구현되어 있습니다.

 

답변해주신 내용을 보니 저렇게 header 안에서 분기 태워야 하는군요.

 

질문글 올리고 갑자기 생각난게 있어서 해보니 잘 되어 수정하였습니다.

$this->uri->segment

이걸 이용하여 분기 태웠는데

비슷한 처리겠네요.

 

도움 주셔서 감사합니다!!