2010-06-15 112 views
0

我對Zend和它的數據庫類很新。我有問題將Zend_Db_Table_Row_Abstract映射到我的行。 問題是,無論何時我試圖將它映射到擴展Zend_Db_Table_Row_Abstract類的類(Job),數據庫數據都不能再被接收。我沒有收到任何錯誤,試圖獲取數據只是返回null。擴展Zend_Db_Table_Row_Abstract不返回值

這裏是我到目前爲止的代碼:

喬布斯:

class Jobs extends Zend_Db_Table_Abstract { 
    protected $_name = 'jobs'; 
    protected $_rowsetClass = "Job"; 

    public function getActiveJobs() 
    {  
     $select = $this->select()->where('jobs.jobDateOpen < UNIX_TIMESTAMP()')->limit(15,0); 

     $rows = $this->fetchAll($select); 
     return $rows; 
    } 
} 

工作:

class Job extends Zend_Db_Table_Row_Abstract { 
    public function getCompanyName() 
    { 
     //Gets the companyName for this row (Is on another table), just for example 
    } 
} 

控制器:

$oJobs = new Jobs(); 
    $aActiveJobs = $oJobs->getActiveJobs(); 
    foreach ($aActiveJobs as $value) { 
     var_dump($value->jobTitle); 
    } 

當我刪除了「保護$ _rowsetClass =「工作」;「行,以便錶行不映射到我自己的類,我完全得到所有jobTitles。我在這裏做錯了什麼?

由於提前,

韋斯利

回答

1

有一個_rowClass_rowsetClass。你有Job延伸Zend_Db_Row_Abstract,但在您的Zend_Db_Table_Abstract您設置Job是行集類。

class Jobs extends Zend_Db_Table_Abstract { 
    protected $_name = 'jobs'; 
    protected $_rowClass = "Job"; 

    public function getActiveJobs() 
    {  
     $select = $this->select()->where('jobs.jobDateOpen < UNIX_TIMESTAMP()')->limit(15,0); 

     $rows = $this->fetchAll($select); 
     return $rows; 
    } 
} 
+0

謝謝,這解決了我的問題。 – WesleyE 2010-06-15 21:47:38

+0

很高興爲您提供幫助 – Ballsacian1 2010-06-15 22:09:58