3 Stimmen

Zend Framework Datenmapper + Paginator

Ich verwende meist zend_db_table mit einem Paginator, das Problem ist, dass es zend_db_rows statt der Domain-Objekte von meinem Datamapper zurückgibt.

Sagen wir:

class Content_Model_ArticleMapper {
/*
 * @param Zend_Db_Select $select
 * @return Zend_Paginator
 */
    public function getPaginator($select = null){}
}

Ich kann es hacken, indem ich die Methode _loadAndReturnRow in einem eigenen Rowset überschreibe Allerdings ist das ziemlich hässlich, da ich keine Zend_Db_Row mehr habe wenn ich die Tabelle abfrage. Und ich verliere auch die Methoden wie save die ich nicht auf dem Domain Objekt replizieren will. :

class Content_Model_DbTable_Rowset_Articles extends Zend_Db_Table_Rowset {
        protected function _loadAndReturnRow($position)
    {
    if (!isset($this->_data[$position])) {
        require_once 'Zend/Db/Table/Rowset/Exception.php';
        throw new Zend_Db_Table_Rowset_Exception("Data for provided position does not exist");
    }

    // do we already have a row object for this position?
    if (empty($this->_rows[$position])) {

        $this->_rows[$position] = new Content_Model_Article($this->_data[$position]);
    }

    // return the row object
    return $this->_rows[$position];
    }
}

So meine Frage, wie Sie dies schön tun? :) Schreiben Sie benutzerdefinierte Paginator-Adapter?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X