2013-03-25 180 views
1

假設我有與類名控制器「谷歌」,它包含一些數據例如笨模板引擎

//應用/控制器/ google.php

$data = array(
    'target' => 'earth', 
    'percentage' => 70 
); 

及其視圖文件是'google_view.php' //應用/視圖/ google_view.php

以及與所述CALSS名「MSN第二CONTROLER「在這裏,我想要得到的」 谷歌「控制器的數據..或者我只是想包括」 google_view「文件,而沒有經過$data變量再次

聽說用setflash的..但問題是什麼,如果用戶訪問msn頁面沒有訪問谷歌

所以有什麼辦法可以得到谷歌控制器數據?

我也檢查了opencart cms &其控制器中的MVC框架,我們可以調用下面的另一個控制器..在下面的代碼中,我們可以調用頭控制器。

$this->children = array(
    'common/column_left', 
    'common/column_right', 
    'common/content_top', 
    'common/content_bottom', 
    'common/footer', 
    'common/header' 
); 

回答

0

嗯...我不認爲你這樣做在CI,但我會建議一個想法......

擴展控制器核心類,那麼就一定要擴大你的新類應用程序控制器的構造函數。例如。

class MY_Controller extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 

     $this->default_data_google = array(
      'target' => 'earth', 
      'percentage' => 70 
     ); 
    } 

} 

class Google extends MY_Controller { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function index() { 
     $data = $this->default_data_google; 
     $this->load->view('google_view', $data); 
    } 

} 

// 

..

class Msn extends MY_Controller { 

    public function __construct() { 
     parent::__construct(); 
    } 

    public function index() { 
     $data = $this->default_data_google; 
     $this->load->view('google_view', $data); 
    } 

} 
+0

如果數據變量是動態的,該怎麼辦? – 2013-03-25 08:54:36

+0

好吧 - 你沒有提到任何關於動態數據的問題 - 但是,你仍然可以從MY_conrroller中的數據庫中獲取數據。 – TigerTiger 2013-03-25 09:40:38

1

您正在尋找HMVC功能,這笨並沒有真正做到。看看這個在CI:https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc中實現它的庫。網絡上有很多資源可以更詳細地解釋HMVC和MVC。

如果你正在做任何規模的事情,CodeIgniter可能不是你的應用程序的最佳框架 - 值得看看其他幾個。我在一分鐘內使用了很多Laravel,如果你只是想獲取另一個控制器的輸出(例如在Laravel中,你只需要去​​),那麼這將工作得很好。

希望有幫助!