Выражение базы данных не используется в запросе

Может ли кто-нибудь сказать мне, почему мое выражение не используется в приведенном ниже запросе?

ВЫБЕРИТЕ accountreset.* ОТ accountreset ГДЕ (reset_id = '34') ПРЕДЕЛ 1

public function findByResetId($resetId, $model = null) {
    $result = null;
    if (isset($resetId)) {
        $select = $this->getDao()->select(
            array('expiration' => new Zend_Db_Expr('UNIX_TIMESTAMP(expiration)'))
        );
        $select->where('reset_id = ?', $resetId);
        $row = $this->getDao()->fetchRow($select);
        if (null != $row) {
            if (!($model instanceof Stage5_Model_PasswordResetter)) {
                $model = new Stage5_Model_PasswordResetter();
            }
                           // vul het model object
            $model->setResetId($row->reset_id);
            $model->setUserId($row->user_id);
            $model->setExpiration($row->expiration);
            $result = $model;

        }
    }
    return $result;

}

person sanders    schedule 01.12.2010    source источник


Ответы (1)


Ваш Zend_Db_Expr должен перейти в метод from() вместо select()

$select = $this->getDao()
               ->select()
               ->from( 
                   $this->getDao()->info('name'), 
                   array('expiration' => new Zend_Db_Expr('UNIX_TIMESTAMP(expiration)'))
                );
person Vika    schedule 01.12.2010
comment
Проблема в том, что теперь мне нужно добавить все нужные поля в предложение from. Потому что иначе он вернет только одно поле. - person sanders; 02.12.2010
comment
@sanders, вы можете добавить '*' к вашему массиву () полей. - person Darryl E. Clarke; 02.12.2010