Passed
Push — feature/optimize ( cf938e...7e8046 )
by Fu
03:43
created

ParseSearchDataTrait   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 27
dl 0
loc 41
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A parseSearchData() 0 18 4
1
<?php
2
3
4
namespace Modules\Core\Traits\Criteria;
5
6
7
use Exception;
8
9
trait ParseSearchDataTrait
10
{
11
    /** @var \Illuminate\Http\Request $request */
12
    protected $request;
13
    /** @var \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Query\Builder $model */
14
    protected $model;
15
    /** @var \Prettus\Repository\Contracts\RepositoryInterface $repository */
16
    protected $repository;
17
    protected $search;
18
    protected $searchData;
19
    protected $searchFields;
20
    protected $isFirstField;
21
    protected $modelForceAndWhere;
22
    protected $fieldsSearchable;
23
    protected $fields;
24
    protected $filter;
25
    protected $orderBy;
26
    protected $sortedBy;
27
    protected $with;
28
    protected $searchJoin;
29
    protected $acceptedConditions;
30
    protected $originalFields;
31
32
    protected function parseSearchData()
33
    {
34
        $searchData = [];
35
36
        if (stripos($this->search, ':')) {
37
            $fields = explode(';', $this->search);
38
39
            foreach ($fields as $row) {
40
                try {
41
                    list($field, $value) = explode(':', $row);
42
                    $searchData[$field] = $value;
43
                } catch (Exception $e) {
44
                    //Surround offset error
45
                }
46
            }
47
        }
48
49
        $this->searchData = $searchData;
50
    }
51
}