没有控制器的视图的多个模型

问题描述:

由于我刚刚开始使用Joomla组件开发,这听起来可能听起来很愚蠢,或者可能是微不足道的。没有控制器的视图的多个模型

我想知道是否有可能有不同的模型附加到视图,而不使用单独的控制器?

我的意图实际上是为不同的视图使用相同的模型。

Thanx提前...

是的,你可以加载视图中的任何模型

$model = JModel::getInstance('ModelName', 'ComponentNameModel'); 

好,我知道它的工作。 基本上你只需要在JRequest类来检查“视图”变量:

if(JRequest::getVar('view') == 'yourtargetview') { 
     $modelMain = $this->getModel ('yourtargetmodel'); 
     $viewCallback = $this->getView ('yourtargetview', 'html'); 
     $viewCallback->setModel($modelMain, true); // true is for the default model; 
    } 

,然后在目标视图类,参考模型的功能如下(请注意第二个参数来获取调用):

$this->targetFieldValue = $this->get('targetMethod', 'targetModel'); 

希望它可以帮助...

+0

'targetField'是方法或属性名称。并从'$ viewCallback =&$ this-> getView'中删除'&',它被弃用,并且会自PHP5.3+引发警告,无论如何通过引用传递对象 – 2013-04-04 07:26:07

+0

其方法....和thnx的建议,我会删除它:) – 2013-04-04 07:27:38