RootAncestor::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
ccs 1
cts 1
cp 1
cc 1
nc 1
nop 4
crap 1
1
<?php
2
3
namespace Staudenmeir\LaravelAdjacencyList\Eloquent\Relations;
4
5
use Illuminate\Database\Eloquent\Builder;
6
use Illuminate\Database\Eloquent\Model;
7
use Illuminate\Database\Eloquent\Relations\HasOne;
8
use Staudenmeir\LaravelAdjacencyList\Eloquent\Relations\Traits\IsAncestorRelation;
9
10
/**
11
 * @template TRelatedModel of \Illuminate\Database\Eloquent\Model
12
 * @extends HasOne<TRelatedModel>
13
 */
14
class RootAncestor extends HasOne
15
{
16
    use IsAncestorRelation {
17
        __construct as baseConstruct;
18
        addConstraints as baseAddConstraints;
19
    }
20
21
    /**
22
     * Create a new root ancestor relationship instance.
23
     *
24
     * @param \Illuminate\Database\Eloquent\Builder $query
25
     * @param \Illuminate\Database\Eloquent\Model $parent
26
     * @param string $foreignKey
27
     * @param string $localKey
28
     * @return void
29 28
     */
30
    public function __construct(Builder $query, Model $parent, $foreignKey, $localKey)
31 28
    {
32
        $this->baseConstruct($query, $parent, $foreignKey, $localKey, false);
33
    }
34
35
    /**
36
     * Set the base constraints on the relation query.
37
     *
38
     * @return void
39 28
     */
40
    public function addConstraints()
41 28
    {
42
        $this->baseAddConstraints();
43 28
44
        $this->query->isRoot();
45
    }
46
}
47