2012-06-15 3 views
0

다른 모듈의 모듈을 어떻게 호출 할 수 있습니까?Yii 프레임 워크, 다른 모듈의 모듈 사용

$image = Yii::app()->image->save($photofile, 'some_name','uploadedGal'); 

을하지만 내 다른 모듈 (admin)의 컨트롤러에서이 오류를 얻을 :이 코드는 보호/컨트롤러 내 컨트롤러에서 작동합니다.

Property "CWebApplication.image" is not defined. 

내 주요 설정 파일에 image 모듈을 정의 :

'modules'=>array(
      'image'=>array(
        'createOnDemand'=>true, // requires apache mod_rewrite enabled 
        'install'=>true, // allows you to run the installer 
      ), 
      'admin', 

), 
+0

아마도 원하는 것은 사용자 지정 CComponent를 정의하는 것입니다. – sucotronic

+0

아니요, 백엔드가'admin' 모듈로 있고 백엔드에서'image' 이미지 관리 모듈을 사용해야합니다. 나는 모든 지시를 따랐고 프론트 엔드에서 작동하지만 모듈 자체 인 백엔드에서 작동하지 않는다. –

답변

7

당신은 당신의 모듈 클래스의 다른 모듈의 구성 요소를 포함해야합니다. 이런 식으로 뭔가 :

class AdminModule extends CWebModule 
{ 
    public function init() 
    { 
     $this->setImport(array(
      'admin.models.*', 
      'admin.components.*', 
      'image.models.*', 
      'image.components.*', 
     )); 
} 
+0

또한 다음과 같이 추가 할 수 있음을 발견했다 :'Yii :: app() -> setComponents (array ('image '=> array ('class '=>'application.modules.image.components.ImgManager ')))'다른 모듈을 사용하기 전에 ... –

+1

@MahsaTeimourikia nice !! 그러나 유지하기가 조금 힘들 것입니다 : P – sucotronic

2

당신은 설정에서 모듈의 구성 요소를 가져올 수 있습니다/아래처럼 main.php :

'import'=>array(
    'application.models.*', 
    'application.components.*', 
    'application.modules.admin.models.*', 
     'application.modules.admin.components.*', 
      .... 
      .... 
), 

모든 모델 등이 당신을 위해 가져옵니다 이런 식으로.