2012-06-15 93 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

不,我有我的後端作爲模塊'管理員'和後端我需要使用圖像管理'圖像'模塊。我遵循所有的指示,它在前端工作,但它不工作在後端,這是一個模塊本身 –

回答

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不錯!但是要保持一點點難度:P – sucotronic

2

您可以在配置導入模塊組件/ main.php象下面這樣:

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

這樣,所有車型等將被導入爲您服務。