コード例 #1
0
ファイル: ApiRequestTest.php プロジェクト: afilina/phpapifoo
 public function testConstructor_WithPageInfo_ExtractsPageInfo()
 {
     $this->request->method('getQueryParams')->willReturn(['pageSize' => 5, 'pageNumber' => 2]);
     $apiRequest = new ApiRequest($this->request);
     $this->assertEquals(5, $apiRequest->getPageSize());
     $this->assertEquals(2, $apiRequest->getPageNumber());
 }
コード例 #2
0
ファイル: ApiRepository.php プロジェクト: afilina/phpapifoo
 /**
  * Split the ids query, otherwise pagination will create issues when using joins.
  */
 public function executeIdsQuery($query, ApiRequest $apiRequest)
 {
     $repository = $this->orm->getRepositoryFromQuery($query);
     $idsQuery = $this->orm->getIdsQuery($repository);
     $this->addFilterCriteria($idsQuery, $repository, $apiRequest->getFilters());
     $this->addSortCriteria($idsQuery, $repository, $apiRequest->getSort());
     $this->addPageCriteria($idsQuery, $repository, $apiRequest->getPageSize(), $apiRequest->getPageNumber());
     $ids = array_map(function ($item) {
         return $item['id'];
     }, $this->orm->executeQuery($idsQuery));
     return $ids;
 }