2013-04-04 35 views
0

由於我剛剛開始使用Joomla組件開發,這聽起來可能聽起來很愚蠢,或者可能是微不足道的。沒有控制器的視圖的多個模型

我想知道是否有可能有不同的模型附加到視圖,而不使用單獨的控制器?

我的意圖實際上是爲不同的視圖使用相同的模型。

Thanx提前...

回答

2

是的,你可以加載視圖中的任何模型

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

好,我知道它的工作。 基本上你只需要在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