Passed
Push — master ( a1f161...76823e )
by Jonas
06:13
created

Bloodline::addExpression()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
c 1
b 0
f 0
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 10
cc 2
nc 1
nop 3
crap 2
1
<?php
2
3
namespace Staudenmeir\LaravelAdjacencyList\Eloquent\Relations;
4
5
use Illuminate\Database\Eloquent\Builder;
6
use Illuminate\Database\Eloquent\Model;
7
8
class Bloodline extends Descendants
9
{
10
    /**
11
     * Create a new bloodline relationship instance.
12
     *
13
     * @param \Illuminate\Database\Eloquent\Builder $query
14
     * @param \Illuminate\Database\Eloquent\Model $parent
15
     * @param string $foreignKey
16
     * @param string $localKey
17
     * @return void
18
     */
19 22
    public function __construct(Builder $query, Model $parent, $foreignKey, $localKey)
20
    {
21 22
        parent::__construct($query, $parent, $foreignKey, $localKey, true);
22 22
    }
23
24
    /**
25
     * Add a recursive expression to the query.
26
     *
27
     * @param callable $constraint
28
     * @param \Illuminate\Database\Eloquent\Builder|null $query
29
     * @param string|null $from
30
     * @return \Illuminate\Database\Eloquent\Builder
31
     */
32 22
    protected function addExpression(callable $constraint, Builder $query = null, $from = null)
33
    {
34 22
        $query = $query ?: $this->query;
35
36 22
        return $query->withRelationshipExpression('both', $constraint, 0, $from);
37
    }
38
}
39