使用Zend_Db_Table_Abstract限制查询返回列


Limit a query return columns with Zend_Db_Table_Abstract

在使用Zend_Db_Table_Abstract时,如何将查询限制为特定列?

(下面的getDbTable()返回一个Zend_Db_Table_Abstract对象)

$resultSet = $this->getDbTable()->fetchAll(
       $this->getDbTable()->select()
        ->where('forgienKey = ''' . $forgienKey . '''')
        ->order("'id' ASC")
    );

我只需要返回id列,但会返回整行。谢谢你的帮助!

如文档中所述:

$select = $table->select();
$select->from($table, array('bug_id', 'bug_description'))
       ->where('bug_status = ?', 'NEW');
$rows = $table->fetchAll($select);

所以,对你来说:

$resultSet = $this->getDbTable()->fetchAll(
       $this->getDbTable()->select()
        ->from($this->getDbTable(), array('id'))
        ->where('forgienKey = ''' . $forgienKey . '''')
        ->order("'id' ASC")
);

请尝试此

$resultSet = $this->getDbTable()->fetchAll(
       $this->getDbTable()->select()
        ->columns('id')
        ->where('forgienKey = ''' . $forgienKey . '''')
        ->order("'id' ASC")
);

编辑

检查链接

http://framework.zend.com/manual/en/zend.db.select.html