forPage() public method

"Paginate" the collection by slicing it into a smaller collection.
public forPage ( integer $page, integer $perPage ) : static
$page integer
$perPage integer
return static
 /**
  * Paginate the results of this query
  *
  * @param  int
  * @param  int
  * @return $this
  */
 public function paginate($perPage, $page)
 {
     if ($perPage > 0) {
         $this->collection = $this->collection->forPage($page, $perPage);
     }
     return $this;
 }
Example #2
0
 /**
  * @param FunctionalTester\UserSteps $I
  *
  * @actor FunctionalTester\UserSteps
  *
  * @return void
  */
 public function addIssue(FunctionalTester\UserSteps $I)
 {
     $I->am('Admin User');
     $I->wantTo('add new issue to a project');
     $admin = $I->createUser(1, 4);
     $developer1 = $I->createUser(2, 2);
     // developer
     $I->login($admin->email, '123', $admin->firstname);
     $project = $I->createProject(1, [$developer1]);
     $I->sendAjaxGetRequest($I->getApplication()->url->action('Administration\\TagsController@getTags', ['term' => 'f']));
     $tags = new Collection((array) $I->getJsonResponseContent());
     $I->amOnAction('Project\\IssueController@getNew', ['project' => $project]);
     $I->seeOptionIsSelected('assigned_to', $developer1->fullname);
     $params = ['title' => 'issue 1', 'body' => 'body of issue 1', 'tag' => $tags->forPage(0, 2)->implode('value', ','), 'assigned_to' => $developer1->id, 'time_quote' => ['h' => 1, 'm' => 2, 's' => 3]];
     $I->submitForm('#content .form-horizontal', $params);
     $issue = $I->fetchIssueBy('title', $params['title']);
     $I->seeCurrentActionIs('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]);
     $I->seeResponseCodeIs(200);
     $I->seeLink($params['title']);
     $I->see($params['body'], '.content');
     $I->see(\Html::duration($issue->time_quote), '.issue-quote');
     foreach ($tags->forPage(0, 2) as $tag) {
         $segments = explode(':', $tag->label);
         $I->see($segments[0], '.issue-tag');
         $I->see($segments[1], '.issue-tag');
     }
 }
 /**
  * @param \FunctionalTester\UserSteps $I
  *
  * @actor FunctionalTester\UserSteps
  *
  * @return void
  */
 public function createIssues(FunctionalTester\UserSteps $I)
 {
     $I->am('Manager User');
     $I->expectTo('create issues in all projects');
     $user = $I->createUser(1, 3);
     $project1 = $I->createProject(1);
     $project2 = $I->createProject(2, [$user]);
     $I->login($user->email, '123', $user->firstname);
     $I->sendAjaxGetRequest($I->getApplication()->url->action('Administration\\TagsController@getTags', ['term' => 'f']));
     $tags = new Collection((array) $I->getJsonResponseContent());
     $params = ['title' => 'issue 1', 'body' => 'body of issue 1', 'tag' => $tags->forPage(0, 1)->implode('value', ','), 'time_quote' => ['h' => 1, 'm' => 1, 's' => 1]];
     $I->amOnAction('Project\\IssueController@getNew', ['project' => $project2]);
     $I->seeResponseCodeIs(200);
     $I->submitForm('#content .form-horizontal', $params);
     $issue = $I->fetchIssueBy('title', $params['title']);
     $I->seeCurrentActionIs('Project\\IssueController@getIndex', ['project' => $project2, 'issue' => $issue]);
     $I->seeResponseCodeIs(200);
     $I->seeLink($params['title']);
     $I->amOnAction('Project\\IssueController@getNew', ['project' => $project1]);
     $I->seeResponseCodeIs(200);
 }
Example #4
0
 public function testPaginate()
 {
     $c = new Collection(['one', 'two', 'three', 'four']);
     $this->assertEquals(['one', 'two'], $c->forPage(1, 2)->all());
     $this->assertEquals([2 => 'three', 3 => 'four'], $c->forPage(2, 2)->all());
     $this->assertEquals([], $c->forPage(3, 2)->all());
 }