Passed
Push — master ( b5f59a...6e06f2 )
by Bas
03:36 queued 10s
created

Model::qualifyColumn()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace LaravelFreelancerNL\Aranguent\Eloquent;
4
5
use Illuminate\Database\Eloquent\Model as IlluminateModel;
6
use Illuminate\Support\Str;
7
use LaravelFreelancerNL\Aranguent\Query\Builder as QueryBuilder;
8
9
abstract class Model extends IlluminateModel
10
{
11
    /**
12
     * The primary key for the model.
13
     *
14
     * @var string
15
     */
16
    protected $primaryKey = '_key';
17
18
    /**
19
     * The primary key type.
20
     * @var string
21
     */
22
    protected $keyType = 'string';
23
24
    /**
25
     * @override
26
     * Create a new Eloquent query builder for the model.
27
     *
28
     * @param QueryBuilder $query
29
     * @return Builder
30
     */
31
    public function newEloquentBuilder($query)
32
    {
33
        return new Builder($query);
34
    }
35
36
    /**
37
     * Get a new query builder instance for the connection.
38
     *
39
     * @return \Illuminate\Database\Query\Builder
40
     */
41
    protected function newBaseQueryBuilder()
42
    {
43
        return $this->getConnection()->query();
44
    }
45
46
    /**
47
     * Qualify the given column name by the model's table.
48
     *
49
     * @param  string  $column
50
     * @return string
51
     */
52
    public function qualifyColumn($column)
53
    {
54
        $tableReferer = Str::singular($this->getTable()).'Doc';
55
56
        if (Str::startsWith($column, $tableReferer.'.')) {
57
            return $column;
58
        }
59
60
        return $tableReferer.'.'.$column;
61
    }
62
}
63