Passed
Push — master ( 0a943e...cf7103 )
by Zing
03:53
created

QueryBuilder::for()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
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 16
    public function __construct(Builder $builder, $request)
27
    {
28 16
        parent::__construct($builder->getQuery());
29 16
        $this->setModel($builder->getModel())->setEagerLoads($builder->getEagerLoads());
30 16
        $this->scopes = $builder->scopes;
31 16
        $this->localMacros = $builder->localMacros;
32 16
        $this->onDelete = $builder->onDelete;
33 16
        $this->request = $request;
34 16
    }
35
36
    /**
37
     * @param Builder|string $baseQuery
38
     * @param \Illuminate\Http\Request $request
39
     *
40
     * @return \Zing\QueryBuilder\QueryBuilder
41
     */
42 16
    public static function fromBuilder($baseQuery, Request $request)
43
    {
44 16
        if (is_string($baseQuery)) {
45 16
            $baseQuery = $baseQuery::query();
46
        }
47
48 16
        return new static($baseQuery, $request);
49
    }
50
}
51