Project

General

Profile

Bug #88159

Updated by Chris Müller over 5 years ago

I have an own find method instead of findAll() in a repository which I call from the action of a controller and set an offset in it (for example offset = 1). The paginate widget now renders the items on the first page correctly (e.g. items 2-5 when showing 4 items per page). The seconds page instead will show the items 5-8 instead of 6-9 (so item 5 is shown twice). 

 This is because the indexAction of the PaginateController does not respect the offset of the queryResult object. 

 Example for find method in repository class: 
 <pre><code class="php"> 
 public function findAllExceptFirstEntry() 
 { 
     $query = $this->createQuery(); 
     $query->setOffset(1); 

     return $query->execute(); 
 } 
 </code></pre> 

 Example for usage of paginate widget: 
 <pre><code class="xml"> 
 <f:widget.paginate objects="{items}" as="paginatedItems" configuration="{itemsPerPage: 4, insertAbove: 0, insertBelow: 1}"> 
     <ul> 
         <f:for each="{paginatedItems}" as="item"> 
             <li>{item.title}</li> 
         </f:for> 
     </ul> 
 </f:widget.paginate> 
 </code></pre> 


 Background: I am using this because I have a top record (first record) which is shown differently from the other records (only on first page). So I am calling in the list action an own implementation of a find method in the repository which sets the offset in the query to 1. 

 I will provide a patch shortly.

Back