我正在试图弄清楚如何正确使用Zend_Db_Table_Abstract。我想从查询中返回name
列。你能解释下面的代码有什么问题吗?
class Model_DbTable_Foo extends Zend_Db_Table_Abstract
{
protected $_name = 'foo';
public function getFooById($id) {
$select = $this->select(true)->columns('name')->where('id=' . $id);
$row = $this->fetchRow($select);
print_r($row->toArray());
}
}
更新
从下面@Joshua Smith的例子中,我能够弄清楚如何使用select()来正确地做到这一点:
$select = $this->select()
->from($this->_name, 'name') // The 2nd param here could be an array.
->where('id = ?', $id);
$row = $this->fetchRow($select);
print_r($row->toArray());
答案 0 :(得分:3)
您的代码非常接近工作:
class Model_DbTable_Foo extends Zend_Db_Table_Abstract
{
protected $_name = 'foo';
public function getFooById($id) {
$row = $this->find($id)->current();
return $row->name;
}
}
http://framework.zend.com/manual/en/zend.db.table.html 有关特定列选择的示例#25和有关使用find的更多信息,请参阅“按主键查找行”。