Как работает Zend_Db_Table_Select? - PullRequest
1 голос
/ 12 марта 2010

Я пытаюсь понять, как правильно использовать 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());

1 Ответ

3 голосов
/ 12 марта 2010

Ваш код очень близок к работе:

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.

...