扩展的Zend_Db_Table_Row_Abstract不返回值

时间:2010-06-15 20:48:01

标签: php zend-framework zend-db

我对Zend和它的数据库类很新。我在将Zend_Db_Table_Row_Abstract映射到我的行时遇到问题。 问题是每当我尝试将它映射到扩展Zend_Db_Table_Row_Abstract类的类(Job)时,数据库数据就不再可接收了。我没有收到任何错误,试图获取数据只是返回null。

到目前为止,这是我的代码:

工作:

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);
    }

当我删除“protected $ _rowsetClass =”Job“;”为了使表行不映射到我自己的类,我完全得到了所有的jobTitles。我在这里做错了什么?

提前致谢,

韦斯利

1 个答案:

答案 0 :(得分: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;
    }
}