2011-12-06 60 views
0

林上使用MVC架構預創建的Joomla組件工作時,我的問題是這樣的:PHP MVC中的Joomla組件

模型中我有一個.php文件與數據庫中讀取功能

defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.model'); 


class class_name extends JModel 
{ 

var $_data; 

    function getlast_year(){ 
     $query = 'SELECT year FROM `table` ORDER BY year DESC LIMIT 0,1'; 
     $this->_db->setQuery($query); 
     return $this->_db->loadResult(); 
    } 

} 

我添加了一個新功能相同的類文件:(我在MVC更新的表列太/表)

爲:

function getAttendenceData() 
{ 
    $query="SELECT id,octSec,octNin,octSect,octSec,octTwent FROM `table`"; 
     $this->_db->setQuery($query); 
     //$this->_data = $this->_db->loadObjectList(); 
     $this->_data = $this->_db->loadObject(); 
     return $this->_db->loadObjectList(); 
} 

視圖我仍然不能從上述新功能訪問所取得的數據,但舊的功能是工作性質

+0

1.首先檢查你是否真的從查詢中獲得一些數據。在上面的函數中執行'print_r($ this - > _ db-> loadObjectList())''。 2.如果是,那麼視圖中訪問這些數據的代碼是什麼? – Vikk

+0

感謝'Vikk'查詢工作正常。我以'$ this-> data的形式訪問數據爲$ r',然後從舊函數中獲取數據'$ r-> id'獲取數據僅僅是新函數的問題 – Sudantha

+0

在這種情況下,您可以發佈代碼,從模型中檢索數據並將其分配給視圖變量?這應該在你的視圖的view.html.php文件中。 – Vikk

回答

1

這是不是一個實際的答案,但響應的註釋。

首先在您的view.html.php文件中,您必須從模型中檢索數據。

$attendance_data = & $this->get('AttendenceData');

爲您從getAttendenceData()函數返回這會給你的對象列表。

現在將它分配給一個視圖變量(可以說是data)。

$this->assignRef('data', $attendance_data);

現在你可以在你的視圖中訪問此數據:

foreach($data as $r) 
{ 
    echo $r->id; 
} 
+0

感謝Vikk問題已經得到了您的幫助,很感謝! – Sudantha

+0

自從Joomla 1.6以來,assignRef已被棄用。在這裏看到:http://stackoverflow.com/questions/14883180/joomla-3-what-to-use-instead-of-assignref –

1

是不是您正試圖兩次獲取數據的問題?

用這行代碼檢索它並將其存儲在本地的_data變量中。

$this->_data = $this->_db->loadObject(); 

用這行代碼嘗試再次檢索數據,但是您已經檢索到它(如果只有一個結果)。你因此很可能返回一個錯誤

return $this->_db->loadObjectList(); 

你應該可能返回$此 - > _在函數的最後數據 - 假設你複製的原始功能確實功能。

+0

您好感謝院長很多的答案是沒有問題..其作爲被Vikk被告知 !謝謝 ! – Sudantha