App\Repositories\Project\EloquentProject::byPage PHP Method

byPage() public method

Get paginated projects.
public byPage ( integer $page = 1, integer $limit = 10 ) : Illuminate\Pagination\LengthAwarePaginator
$page integer Page number
$limit integer Number of projects per page
return Illuminate\Pagination\LengthAwarePaginator
    public function byPage($page = 1, $limit = 10)
    {
        $projects = $this->model->with(['deployments' => function ($query) {
            $query->orderBy('number', 'desc');
        }])->orderBy('name')->skip($limit * ($page - 1))->take($limit)->paginate($limit);
        return $projects;
    }

Usage Example

Example #1
0
 public function test_Should_GetProjectsByPage()
 {
     $arrangedServer = Factory::create('App\\Models\\Server', ['name' => 'Recipe 1', 'description' => '', 'body' => '']);
     Factory::createList('App\\Models\\Project', [['name' => 'Project 1', 'server_id' => $arrangedServer->id, 'stage' => 'staging'], ['name' => 'Project 2', 'server_id' => $arrangedServer->id, 'stage' => 'staging'], ['name' => 'Project 3', 'server_id' => $arrangedServer->id, 'stage' => 'staging'], ['name' => 'Project 4', 'server_id' => $arrangedServer->id, 'stage' => 'staging'], ['name' => 'Project 5', 'server_id' => $arrangedServer->id, 'stage' => 'staging']]);
     $projectRepository = new EloquentProject(new App\Models\Project(), new App\Models\MaxDeployment());
     $foundProjects = $projectRepository->byPage();
     $this->assertCount(5, $foundProjects->items());
 }
EloquentProject