Passed
Push — master ( 0ba402...934d75 )
by Bas
05:33
created

Model::getForeignKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
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
    use Concerns\HasRelationships;
12
13
14
    /**
15
     * The primary key for the model.
16
     *
17
     * @var string
18
     */
19
    protected $primaryKey = '_key';
20
21
    /**
22
     * The primary key type.
23
     * @var string
24
     */
25
    protected $keyType = 'string';
26
27
    /**
28
     * @override
29
     * Create a new Eloquent query builder for the model.
30
     *
31
     * @param QueryBuilder $query
32
     * @return Builder
33
     */
34
    public function newEloquentBuilder($query)
35
    {
36
        return new Builder($query);
37
    }
38
39
    /**
40
     * Get a new query builder instance for the connection.
41
     *
42
     * @return \Illuminate\Database\Query\Builder
43
     */
44
    protected function newBaseQueryBuilder()
45
    {
46
        return $this->getConnection()->query();
47
    }
48
49
    /**
50
     * Qualify the given column name by the model's table.
51
     *
52
     * @param  string  $column
53
     * @return string
54
     */
55
    public function qualifyColumn($column)
56
    {
57
        $tableReferer = Str::singular($this->getTable()) . 'Doc';
58
59
        if (Str::startsWith($column, $tableReferer . '.')) {
60
            return $column;
61
        }
62
63
        return $tableReferer . '.' . $column;
64
    }
65
66
    /**
67
     * Get the default foreign key name for the model.
68
     *
69
     * @return string
70
     */
71
    public function getForeignKey()
72
    {
73
        return Str::snake(class_basename($this)) . $this->getKeyName();
74
    }
75
}
76