Completed
Push — master ( dd4dc5...d1e582 )
by ARCANEDEV
04:29
created

Paginatable::paginate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 9
nc 1
nop 3
dl 0
loc 13
ccs 0
cts 12
cp 0
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php namespace Arcanedev\Support\Traits;
2
3
use Illuminate\Http\Request;
4
use Illuminate\Pagination\LengthAwarePaginator;
5
use Illuminate\Support\Collection;
6
7
/**
8
 * Trait     Paginatable
9
 *
10
 * @package  Arcanedev\Support\Traits
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
trait Paginatable
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Main Functions
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /**
20
     * Paginate the collection.
21
     *
22
     * @param  \Illuminate\Support\Collection  $data
23
     * @param  \Illuminate\Http\Request        $request
24
     * @param  int                             $perPage
25
     *
26
     * @return \Illuminate\Pagination\LengthAwarePaginator
27
     */
28
    protected function paginate(Collection $data, Request $request, $perPage)
29
    {
30
        $page = $request->get('page', 1);
31
        $path = $request->url();
32
33
        return new LengthAwarePaginator(
34
            $data->forPage($page, $perPage),
35
            $data->count(),
36
            $perPage,
37
            $page,
38
            compact('path')
39
        );
40
    }
41
}
42