HasTableAlias::setAlias()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Staudenmeir\EloquentHasManyDeep;
4
5
trait HasTableAlias
6
{
7
    /**
8
     * Qualify the given column name by the model's table.
9
     *
10
     * @param string $column
11
     * @return string
12
     */
13
    public function qualifyColumn($column)
14
    {
15
        if (str_contains($column, '.')) {
16
            return $column;
17
        }
18
19
        $table = $this->getTable();
0 ignored issues
show
Bug introduced by
It seems like getTable() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

19
        /** @scrutinizer ignore-call */ 
20
        $table = $this->getTable();
Loading history...
20
21
        if (str_contains($table, ' as ')) {
22
            $table = explode(' as ', $table)[1];
23
        }
24
25
        return $table.'.'.$column;
26
    }
27
28
    /**
29
     * Set an alias for the model's table.
30
     *
31
     * @param string $alias
32
     * @return $this
33
     */
34
    public function setAlias($alias)
35
    {
36
        return $this->setTable($this->getTable().' as '.$alias);
0 ignored issues
show
Bug introduced by
It seems like setTable() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

36
        return $this->/** @scrutinizer ignore-call */ setTable($this->getTable().' as '.$alias);
Loading history...
37
    }
38
}
39