2010-03-12 2 views
1

Я пытаюсь понять, как правильно использовать Zend_Db_Table_Abstract. Я хочу вернуть только столбец name из моего запроса. Не могли бы вы объяснить, что не так со следующим кодом?Как работает Zend_Db_Table_Select?

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

Update:

Из примера по @Joshua Смит ниже, я был в состоянии понять, как использовать выбор(), чтобы сделать это правильно:

$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()); 

ответ

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.

+0

Спасибо! В примере № 25 я смог выяснить, как работает функция select(). Я отправлю свой код выше. – jwhat