2

我想要一個視圖來調用2個不同的模型以供使用。Joomla組件:一個視圖調用多個模型?

Controller.php這樣

class StatsController extends JController { 
    function display() 
    { 
     if(!JRequest::getVar('view')) { 
      JRequest::setVar('view', 'stats'); 
     } 
     parent::display(); 
    } 
    ... 
    ... 
} 

統計觀點:(?index.php文件選項= com_stats &視圖=統計)

class StatsViewStats extends JView 
{ 
    function display($tpl = null) 
    { 
     $model_helpdesk = & JModel::getInstance('Helpdesk','StatsModel'); 
    //$model_chart = & JModel::getInstance('Chart','StatsModel'); 
    //$model_chart = &$this->getModel('Chart'); 
    var_dump($model_chart); 
    ... 
    ... 
     parent::display($tpl); 
    } 
} 

問題:得到服務檯模型工作正常,但獲取圖表模型要麼返回一個blanc頁面,要麼返回null var_d ump。我怎樣才能得到這個第二個模型的使用(無需修改控制器)?

回答

3

在你的控制器,你需要做到以下幾點:

$view = &$this->getView('Stats', 'html'); 
$view->setModel($this->getModel('Stats'), true); 
$view->setModel($this->getModel('Chart')); 
$view->setModel($this->getModel('Helpdesk')); 
$view->display(); 

然後,您可以使用訪問每個模型如下:

$chartModel = $this->getModel('Chart'); 
$helpdeskModel = $this->getModel('Helpdesk'); 

Source

+0

很抱歉,但我已經看到這並沒有幫助! 我只需要保持我的控制器的顯示功能不變,所以我可以通過** index.php直接訪問視圖?option = com_stats&view = XXXX ** – 2012-03-14 22:27:54

+0

控制器應該在哪裏?在哪個方法? – 2013-01-14 16:32:56

+0

好的,我發現了。它應該在Controller StatsController的display()方法中(在這種情況下)。謝謝 :) – 2013-01-14 16:48:56

相關問題