2013-04-01 65 views
3

按照教程中的介紹如何創建一個joomla 2.5組件我被Stucked從view.html.php傳遞參數給我的模型。如何將參數/參數傳遞給模型

$items = $this->get('TableData'); 

和我的資料表模型期望得到下面的參數

public function getTableData($table, $index_column, $columns) {} 

回答

7

使用視圖的get方法你不能做到這一點。相反,你就必須抓住模型到視圖,並直接在視圖中調用該函數:

$model = $this->getModel(); 
$items = $model->getTableData($table, $index_column, $columns); 

或者,你可以創建模型中的不同的入口點,這將是能夠計算這些輸入選項無論是從狀態信息或預設。許多人會認爲這會導致更好的應用程序設計,因爲使用上面的代碼將視圖中應該是模型邏輯。

+0

感謝您的反饋。所以我應該在view.html.php中調用模型,或者如果我已經在我的控制器 – fefe

+0

'$ this-> get('TableData')中執行此操作,那麼應該已經在您的視圖中。這將獲得視圖的數據顯示,我會假設。如果是這種情況,那麼你應該從視圖中調用模型。一般規則是視圖調用模型來獲取信息以顯示。控制器應調用模型來保存/更新項目。 –

+1

如果您刪除&,我會鼓勵您。 –

2

這只是大衛的答案的插件。

因爲大部分數據通常來自POST/GET方法,這取決於您的應用程序,你可能想看看如何loadFormData()從loadFormDataJModelFormpopulateState在特定的Joomla組件被覆蓋。

基本上,模型的狀態是使用JInput直接從POST數據設置的。

此外,雖然它不是一個規則或什麼,但3個參數是我傳遞給方法的最大值。爲了靈活性,我寧願傳遞一個數組,以後可以在不改變方法簽名的情況下進行擴展。