2011-01-19 3 views
0

나는이 코드 작업이 있습니다 PropelPager를 사용하는 페이지의 URL은 무엇입니까?

$c = new Criteria(); 
$c->addJoin(sfGuardUserProfilePeer::USER_ID, sfGuardUserGroupPeer::USER_ID, Criteria::INNER_JOIN); 
$c->add(sfGuardUserGroupPeer::GROUP_ID, 2); 

$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page = 2, $rowsPerPage = 1); 

그리고

해당 템플릿이 :

<table> 
<?php foreach ($pager->getResult() as $book): ?> 
    <tr> 
    <td><?php echo $book->getName() ?></td> 
    <td><?php echo $book->getSurname() ?></td> 
    </tr> 
<?php endforeach; ?> 
</table> 

내가 작업을 호출 할 때 나는 첫 번째 결과 첫 페이지를 얻을,하지만이입니다 2 페이지의 URL?

감사합니다.

김포 1.4/PR 1.5

하비

답변

1

는 첫째로, 당신은 당신의 코드를 해결하는 데 :

$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page, $rowsPerPage); 

이 두 번째로, 단지 당신이 페이지 번호가 행동에 처리하는 방법을 정의합니다.

// $request - a sfWebRequest object passed to your action 
$page = $request->getParameter('page', 1); // first page by default 
$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page = 2, $rowsPerPage = 1); 

을 그리고 당신은 manully보기에서 페이지에 대한 링크를 생성 할 수 있습니다 : 나는 URL에 page 매개 변수를 원합니다

<table> 
<?php if ($pager->getNbResults()): ?> 
    <?php foreach ($pager->getResults() as $book): ?> 
     <tr> 
     <td><?php echo $book->getName() ?></td> 
     <td><?php echo $book->getSurname() ?></td> 
     </tr> 
    <?php endforeach; ?> 
<?php endif; ?> 
</table> 

<?php if ($pager->haveToPaginate()): ?> 
    display pagination here and generate "uri/?page=N" links 
<?php endif; ?> 

은 그래서, 가능한 모든 페이지가 $pager->getLinks()으로 검색됩니다. 결과는 배열입니다.

추가 읽기 :

희망.

관련 문제