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

: 잘 작동헬프 데스크 모델을 받고, 그러나 차트 모델을 가져 오면 블랭크 페이지가 반환되거나 var_d에 null이 반환됩니다. ump. 컨트롤러를 수정하지 않고이 두 번째 모델을 어떻게 사용할 수 있습니까?

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

그런 다음 다음과 같은 사용하여 각 모델에 액세스 할 수 있습니다 : 컨트롤러에서

답변

3

, 다음을 수행해야합니다

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

Source

+0

미안하지만, 이미 난 그것을 보았다 & 그것은 도움이되지 않는다! 컨트롤러의 디스플레이 기능을 그대로 유지하면 ** index.php를 통해 직접 뷰에 액세스 할 수 있습니다. option = com_stats & view = XXXX ** –

+0

컨트롤러의 위치는 어디입니까? 어떤 방법으로? –

+0

좋아, 알았어. Controller StatsController (이 경우)의 display() 메서드에 있어야합니다. 감사 :) –