Passed
Pull Request — master (#1)
by Zing
04:25
created

QueryBuilder::searchable()   B

Complexity

Conditions 8
Paths 4

Size

Total Lines 38
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 22
CRAP Score 8

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 23
c 1
b 0
f 0
dl 0
loc 38
ccs 22
cts 22
cp 1
rs 8.4444
cc 8
nc 4
nop 1
crap 8
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: zing
5
 * Date: 2018/12/26
6
 * Time: 7:14 PM.
7
 */
8
9
namespace Zing\QueryBuilder;
10
11
use Illuminate\Database\Eloquent\Builder;
12
use Illuminate\Http\Request;
13
use Zing\QueryBuilder\Concerns\WithFilters;
14
use Zing\QueryBuilder\Concerns\WithSearchable;
15
use Zing\QueryBuilder\Concerns\WithSorts;
16
17
class QueryBuilder extends Builder
18
{
19
    use WithFilters;
20
    use WithSearchable;
21
    use WithSorts;
22
23
    /** @var \Illuminate\Http\Request */
24
    protected $request;
25
26 17
    public function __construct(Builder $builder, $request)
27
    {
28 17
        parent::__construct($builder->getQuery());
29 17
        $this->setModel($builder->getModel())->setEagerLoads($builder->getEagerLoads());
30 17
        $this->scopes = $builder->scopes;
31 17
        $this->localMacros = $builder->localMacros;
32 17
        $this->onDelete = $builder->onDelete;
33 17
        $this->request = $request;
34 17
    }
35
36
    /**
37
     * @param Builder|string $baseQuery
38
     * @param \Illuminate\Http\Request $request
39
     *
40
     * @return \Zing\QueryBuilder\QueryBuilder
41
     *
42
     * @deprecated use fromBuilder instead
43
     */
44 1
    public static function for($baseQuery, Request $request)
45
    {
46 1
        return self::fromBuilder($baseQuery, $request);
47
    }
48
49
    /**
50
     * @param Builder|string $baseQuery
51
     * @param \Illuminate\Http\Request $request
52
     *
53
     * @return \Zing\QueryBuilder\QueryBuilder
54
     */
55 17
    public static function fromBuilder($baseQuery, Request $request)
56
    {
57 17
        if (is_string($baseQuery)) {
58 17
            $baseQuery = $baseQuery::query();
59
        }
60
61 17
        return new static($baseQuery, $request);
62
    }
63
}
64