Joomla组件:一个视图调用多个模型?

时间:2012-03-14 22:15:10

标签: model-view-controller joomla joomla-extensions joomla-component

我想要一个视图来调用2个不同的模型。

Controller.php这样

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

统计信息查看:(index.php?option = com_stats& view = 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_dump 中返回null。如何使用第二个模型(不修改控制器)??

1 个答案:

答案 0 :(得分: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