Passed
Push — master ( db1581...a5af1f )
by Ferry
04:30
created

Hook::query()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: User
5
 * Date: 2/13/2019
6
 * Time: 5:43 PM
7
 */
8
9
namespace crocodicstudio\crudbooster\types\select;
10
11
use crocodicstudio\crudbooster\types\TypesHook;
12
13
class Hook extends TypesHook
14
{
15
    /**
16
     * @param \Illuminate\Database\Query\Builder $query
17
     * @param SelectModel $column
18
     * @return mixed|void
19
     */
20
    public function query($query, $column)
21
    {
22
        if($column->getOptionsFromTable()) {
23
            $option = $column->getOptionsFromTable();
24
            $query->join($option["table"],$option["table"].'.'.$option["key_field"],"=", $column->getName());
25
            $query->addSelect($option['table'].'.'.$option['display_field'].' as '.$option['table'].'_'.$option['display_field']);
26
        }
27
        return $query;
28
    }
29
30
    /**
31
     * @param $row
32
     * @param $column SelectModel
33
     */
34
    public function indexRender($row, $column)
35
    {
36
        if($column->getOptionsFromTable()) {
37
            $option = $column->getOptionsFromTable();
38
            return $row->{ $option['table'].'_'.$option['display_field'] };
39
        }else{
40
            $option = $column->getOptions();
41
            $key = $row->{ $column->getField() };
42
            return @$option[ $key ];
43
        }
44
    }
45
46
    public function detailRender($row, $column)
47
    {
48
        return $this->indexRender($row, $column);
49
    }
50
51
}