我对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。我在这里做错了什么?
提前致谢,
韦斯利
答案 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;
}
}