Paginable::newQuery()
last analyzed

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Goopil\RestFilter\Contracts;
4
5
use Illuminate\Http\Request;
6
7
/**
8
 * Class Paginable.
9
 *
10
 * @mixin \Illuminate\Database\Eloquent\Model
11
 */
12
trait Paginable
13
{
14
    public static function all($columns = ['*'])
15
    {
16
        $columns = is_array($columns) ? $columns : func_get_args();
17
        $instance = new static();
18
        $request = request();
19
20
        return $request->has('page') ?
21
            $instance->newQuery()->paginate($request->get('perPage', $instance->getPerPage()), $columns) :
22
            $instance->newQuery()->get($columns);
23
    }
24
25
    abstract public function newQuery();
26
27
    abstract public function getPerPage();
28
}
29