Passed
Push — feature/optimize ( 219eef...0e0305 )
by Fu
03:34
created

ParserValueTrait::parserSearchDataValue()   A

Complexity

Conditions 6
Paths 6

Size

Total Lines 21
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 6
eloc 17
nc 6
nop 2
dl 0
loc 21
rs 9.0777
c 0
b 0
f 0
1
<?php
2
3
4
namespace Modules\Core\Traits\Criteria;
5
6
7
trait ParserValueTrait
8
{
9
    protected function parserValue($condition, $field)
10
    {
11
        $value = null;
12
        $condition = trim(strtolower($condition));
13
14
        if (isset($this->searchData[$field])) {
15
            $value = $this->parserSearchDataValue($this->searchData[$field], $condition);
16
        } elseif (!is_null($this->search)) {
17
            $value = $this->parserSearchDataValue($this->search, $condition);
18
        }
19
20
        return $value;
21
    }
22
23
    protected function parserSearchDataValue($value, $condition)
24
    {
25
        switch ($condition) {
26
            case 'like':
27
                $value = "%{$value}%";
28
                break;
29
            case 'ilike':
30
                $value = "%{$value}%";
31
                break;
32
            case 'in':
33
                $value = explode(',', $value);
34
                break;
35
            case 'between':
36
                $value = explode(',', $value);
37
                break;
38
            case 'cross':
39
                $value = explode(',', $value);
40
                break;
41
        }
42
43
        return $value;
44
    }
45
}