2

ビューを使用して2つの異なるモデルを呼び出すことができます。Joomlaコンポーネント:複数のモデルを呼び出す1つのビュー?

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); 
    } 
} 

問題:正常に動作しますヘルプデスクのモデルを取得し、 グラフモデルを取得すると、ブランクページが返されるか、var_dにnullが返されますump。どのようにして(コントローラーを変更せずに)この2番目のモデルを入手できますか?お使いのコントローラで

答えて

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 ** –

+0

コントローラーはどこですか?どの方法で? –

+0

OK、わかった。 Controller StatsController(この場合)のdisplay()メソッド内になければなりません。ありがとう:) –

関連する問題