TIP게시판

제목 HMVC에서 Hooks Layout에 변수 전달?
글쓴이 방문넷 작성시각 2014/09/25 14:36:19
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 11825   RSS
달뚱이님이 해결책을 인용하였습니다.
-----------------------------------------------------
http://www.codeigniter-kr.org/qna/view/3408/page/1
-----------------------------------------------------

아래의 링크의 레이아웃 시스템을 주로 쓰시는 분들이 있으실껍니다 저역시 이거를 자주쓰고있구용...
http://codeigniter-kr.org/source/view/313/page/1

그런데!!!!!HMVC5.4를 적용하면 변수전달이라고 해야하나요 고것이 안되는거같더라구요.

레이아웃 파일을 따로 만들고 $this->layout = '원하는 레이아웃'; 혹은

$this->yeild = FALSE; 로 해서 레이아웃을 사용안한다거나 를 적용할려고 

$this-> 이것으로하면 분명 HMVC적용안한 컨트롤러는되는데 적용한거는 안되지 않는거예요....


HMVC도 따로 인스턴스를 확보하는거 같아서 원 소스(MX/Base.php) 를 살펴보다가...

역시나...

self::$APP = $this............

그래서 냉큼 적용할려는 해당컨트롤러 안에서

CI::$APP->layout = '원하는 레이아웃';

을하니까...... 그냥 적용되네요............

즉 짧막한 요약을 하자면

HMVC5.4 에 Hook Layout 을 적용하고 레이아웃 사용유무라던가 레이아웃 변경시엔

$this->layout 로 넘겨주지말고 CI::$APP->layout 으로 넘겨주시면되겠습니다...




P.S 아마 저랑 비슷한분계시겠죠? 값을 넘겨줄때 클래스명::메쏘드->함수 이런거 보다

$this->로 시작해야 마음이 웬지 놓이는 기분? ㅎㅎㅎㅎ
 다음글 [디버깅] xdebug xampp설정 (6)
 이전글 다음에디터 syntax highlighter inter... (3)

댓글

변종원(웅파) / 2014/09/25 14:47:30 / 추천 0
yes
yishero / 2015/04/21 10:00:05 / 추천 0
아래 코드가 한줄만 있어서 어디에 어떻게 넣어야 하는지 모르겠네요.
CI::$APP->layout = '원하는 레이아웃';
이 코드를 어디에 controller생성자에 넣어야 하나요?
생성자에 넣으니 CI를 찾을 수 없다고 에러가 나고 ::: 
Fatal error: Class 'CI' not found
function __construct()
{
    parent::__construct();
    CI::$APP->layout = 'aaaaaa';
}

아래와 같이 넣으니 $APP에서 에러가 나네요. ::: Fatal error: Access to undeclared static property: Main::$APP
function __construct()
{
    parent::__construct();
    $CI =& get_instance();
    $CI::$APP->layout = 'aaaaaa';
}