2012-08-29 3 views
1

Yii에서 중첩 모듈 구조를 설정했는데 어떤 이유로 하위 모듈이 전혀 레이아웃을 사용하지 않는 것으로 보입니다.Yii : (중첩 된) 하위 모듈의 레이아웃

여기 내 길은 기적입니다.

app 
    protected 
     modules 
      parent 
       views 
        layouts 
         column1.php 
         column2.php 
         main.php 
       modules 
        child

나는

'modules'=>array(
    'parent'=>array(
     'modules'=>array(
      'child', 
     ), 
    ), 
),

모듈 기능 모두를 다음과 같이 설정 파일에 모듈을 추가하지만, 아이에서 내가 할 모든 사용자 정의 할 수있는 기본/인덱스 컨트롤러를 설명하는 메시지입니다 모듈했습니다 다음 경로에서. 레이아웃 내용이 표시되지 않습니다.

문서를 기반으로, 나는 자식 모듈이 부모로부터 레이아웃을 상속 받길 기대했다.

gii (자식 모듈을 만들지 않음)를 사용하여 자식 모듈을 생성 했으므로 일반 모듈로 생성하고 부모 내 모듈 폴더를 추가 한 다음 부모 모듈에 결과를 자식으로 복사했습니다. .

어디에서 볼 수 있나요?

답변

0

이 문제는 Yii의보기 해결 방법에 있습니다. 부모 모듈은 기본 레이아웃을 내 자식 모듈에 상속 된 'column1'로 설정합니다. 'column1'레이아웃 내에서 'main'레이아웃은 다음 코드로 렌더링됩니다.

$this->beginContent('/layouts/main');

Yii의보기 해상도 구성에서이 코드는 현재 모듈의 layouts 폴더에 매핑됩니다. 부모 모듈의 뷰의 경우 상위 뷰 폴더의 기본 레이아웃에 매핑되며 정상적으로 작동합니다. 내 아이 모듈 뷰의 경우

/protected/modules/parent/views/layouts/main.php

이 존재하지 않는 폴더를 보는 아이의 메인 레이아웃에 매핑 및 해상도가 실패합니다.

/protected/modules/parent/modules/child/views/layouts/main.php

YII 포럼 here에 제공 주변의 작품은,는 '컬럼 1'과 부모 모듈에서 '2 열'레이아웃 반 고정 경로를 사용하기를 수정하는 것입니다.

$this->beginContent('//../modules/parent/views/layouts/main')
관련 문제