2012-01-21 7 views
0

サンプルアプリケーションでDAOパターンを実装していて、UserMapperからUser(ドメイン)を取得したプレーンな配列を持っています。Zend_Paginatorを私はZend_DbTableアダプタを使用すると動作しますが、DAOの目的を破ってしまいます。私はZend_PaginatorとpartialLoopと一緒に使用したいプレーンなPHPオブジェクトの配列を持っています

以下のサンプルコード(動作しない)

$userMapper = new Application_Model_UserMapper(); 
    $users = $userMapper->getUsers(); 
    $paginator = Zend_Paginator::factory($users); 
    $paginator->setCurrentPageNumber($this->_getParam('page')); 
    $paginator->setItemCountPerPage(1); 
    $this->view->paginator = $paginator; 

以下のサンプルコード(ワーキング)

$users = new Application_Model_DbTable_User(); 
    $select = $users->fetchAll(); 
    $paginator = Zend_Paginator::factory($select); 
    $paginator->setCurrentPageNumber($this->_getParam('page')); 
    $paginator->setItemCountPerPage(1); 
    $this->view->paginator = $paginator; 
+0

のキーと値のペアを返す必要があり、私の問題を解決します私は侮辱したくはありませんが、配列をチェックするためにあなたの$ユーザーをvar_dumpedしてもらえますか? – RockyFord

+0

もちろん、私はZend_Debug :: dumpとそのokを使って配列構造をチェックしました。 –

+0

どのような意味で「機能しませんか? view-scriptには何の結果も表示されませんか?ビュースクリプトのページネーションが正しくありませんか? ページネーション($ this-> paginationControl、 'Sliding'、pagination.phtml ')?> –

答えて

1

私は、ファクトリメソッドを見ていたし、それは3つのパラメータ

public static function factory($data, $adapter = self::INTERNAL_ADAPTER, 
           array $prefixPaths = null) 

を取りますお試しください。

$paginator = Zend_Paginator::factory($users, 'Array'); 

少なくともこの方法では、データが何らかの形で間違っている場合は例外を発生させる必要があります。

0

私はすでに、プレーンなPHPオブジェクトを含む配列がでPartialLoopによって認識されるようにするために、あなたがそのクラス内のtoArray()メソッドを実装し、属性

class Application_Model_User 
    { 
    private $id; 
    private $first_name; 
    private $last_name; 
    private $middle_name; 

    public function toArray() 
    { 
    return get_object_vars($this); 
    } 
    } 
+0

これは意味があります。 – RockyFord

関連する問題