Passed
Push — master ( 214063...0a943e )
by Zing
01:46 queued 11s
created

QueryBuilder::fromBuilder()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 3
c 0
b 0
f 0
nc 2
nop 2
dl 0
loc 7
ccs 4
cts 4
cp 1
crap 2
rs 10
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