2012-03-11 75 views
0

我有一個500用戶的表。我需要在我的主頁上顯示最近100個註冊用戶,分頁。所以我使用symfony和sfDoctrinePager分頁。Symfony Doctrine sfDoctrinePager和LIMIT

操作:

$query = UserTable::getLast100UsersQuery(); 
    $pager = new sfDoctrinePager('User', 10); 
    $pager->setQuery($query); 
    $pager->setPage($request->getParameter('page', 1)); 
    $pager->init(); 

型號:

static public function getLast100UsersQuery() { 
    return Doctrine_Core::getTable('User')->limit(100); 
    } 

我的問題是,LIMIT(100),在模型中,被忽略,分頁是所有500個用戶。我只想要最後的100個用戶,而不是全部。

預先感謝所有幫助球員

回答

0

我做尋呼有點不同的方式。 在我的模型,查詢somting這樣的:

public function getLast100UsersQuery($page = null) 
    { 
     $q = Doctrine_Query::create() 
     ->from("User") 
     ->limit(100); 

     $pager = new sfDoctrinePager('User', 10); 
     $pager->setQuery($q); 
     $pager->setPage($page, 1); 
     $pager->init(); 

     return $pager; 
     } 

在行動中,我得到的查詢:

$pager = $this->pager = Doctrine_Core::getTable('user')->getLast100UsersQuery($request->getParameter('page')); 

所有Tyme的我使分頁以這種方式並沒有出現問題:)

+0

難道你測試它? – denys281 2012-03-14 17:14:34

+0

對於這種情況,他需要重放他的參數,如表名和其他。但在我的項目中,我以這種方式進行分頁,並且100% – plamen 2012-03-14 18:23:42