Completed
Push — master ( 3ea6ae...0ed167 )
by Denis
01:19
created
src/DataProviders/EloquentDataProvider.php 1 patch
Indentation   +92 added lines, -92 removed lines patch added patch discarded remove patch
@@ -8,96 +8,96 @@
 block discarded – undo
8 8
 
9 9
 class EloquentDataProvider extends BaseDataProvider
10 10
 {
11
-    protected $filters = true;
12
-    protected $ordering = true;
13
-
14
-    protected $query;
15
-
16
-    /**
17
-     * EloquentDataProvider constructor.
18
-     * @param Builder $query
19
-     */
20
-    public function __construct(Builder $query)
21
-    {
22
-        $this->query = clone $query;
23
-    }
24
-
25
-    /**
26
-     * Applies filter to a column
27
-     * @param \Closure| $filter
28
-     * @param string $fieldName
29
-     * @param Builder $query
30
-     * @param mixed $value
31
-     * @return void
32
-     */
33
-    private function applyFilter($filter, string $fieldName, Builder $query, $value)
34
-    {
35
-        if (is_callable($filter)) {
36
-           $filter($query, $value);
37
-           return;
38
-        }
39
-
40
-        switch ($filter) {
41
-            case '=':
42
-                $query->where($fieldName, '=', $value);
43
-                break;
44
-
45
-            case 'like':
46
-                $query->where($fieldName, 'LIKE', '%' . $value . '%');
47
-                break;
48
-
49
-            default:
50
-                throw new GridViewConfigException('Unknown filter type: ' . $filter);
51
-        }
52
-    }
53
-
54
-    /**
55
-     * @param GridViewRequest $request
56
-     * @return Builder
57
-     */
58
-    protected function baseQuery(GridViewRequest $request)
59
-    {
60
-        $query = clone $this->query;
61
-
62
-        if ($this->filters !== false) {
63
-            foreach ($request->filters as $field => $value) {
64
-                if ($this->filters === true || in_array($field, $this->filters)) {
65
-                    $query->where($field, 'LIKE', '%' . $value . '%');
66
-
67
-                } elseif (!empty($this->filters[$field])) {
68
-                    $this->applyFilter($this->filters[$field], $field, $query, $value);
69
-                }
70
-            }
71
-        }
72
-
73
-        if ($request->sortColumn && ($this->ordering === true || in_array($request->sortColumn, $this->ordering))) {
74
-            $query->orderBy($request->sortColumn, $request->sortOrder);
75
-        }
76
-
77
-        return $query;
78
-    }
79
-
80
-    /**
81
-     * @inheritdoc
82
-     */
83
-    public function getCount(GridViewRequest $request) : int
84
-    {
85
-        return $this->baseQuery($request)->count();
86
-    }
87
-
88
-    /**
89
-     * @inheritdoc
90
-     */
91
-    public function getData(GridViewRequest $request)
92
-    {
93
-        $query = $this->baseQuery($request);
94
-
95
-        if ($request->perPage == 0) {
96
-            return $query->get();
97
-        }
98
-
99
-        return $query->offset(($request->page - 1) * $request->perPage)
100
-            ->limit($request->perPage)
101
-            ->get();
102
-    }
11
+	protected $filters = true;
12
+	protected $ordering = true;
13
+
14
+	protected $query;
15
+
16
+	/**
17
+	 * EloquentDataProvider constructor.
18
+	 * @param Builder $query
19
+	 */
20
+	public function __construct(Builder $query)
21
+	{
22
+		$this->query = clone $query;
23
+	}
24
+
25
+	/**
26
+	 * Applies filter to a column
27
+	 * @param \Closure| $filter
28
+	 * @param string $fieldName
29
+	 * @param Builder $query
30
+	 * @param mixed $value
31
+	 * @return void
32
+	 */
33
+	private function applyFilter($filter, string $fieldName, Builder $query, $value)
34
+	{
35
+		if (is_callable($filter)) {
36
+		   $filter($query, $value);
37
+		   return;
38
+		}
39
+
40
+		switch ($filter) {
41
+			case '=':
42
+				$query->where($fieldName, '=', $value);
43
+				break;
44
+
45
+			case 'like':
46
+				$query->where($fieldName, 'LIKE', '%' . $value . '%');
47
+				break;
48
+
49
+			default:
50
+				throw new GridViewConfigException('Unknown filter type: ' . $filter);
51
+		}
52
+	}
53
+
54
+	/**
55
+	 * @param GridViewRequest $request
56
+	 * @return Builder
57
+	 */
58
+	protected function baseQuery(GridViewRequest $request)
59
+	{
60
+		$query = clone $this->query;
61
+
62
+		if ($this->filters !== false) {
63
+			foreach ($request->filters as $field => $value) {
64
+				if ($this->filters === true || in_array($field, $this->filters)) {
65
+					$query->where($field, 'LIKE', '%' . $value . '%');
66
+
67
+				} elseif (!empty($this->filters[$field])) {
68
+					$this->applyFilter($this->filters[$field], $field, $query, $value);
69
+				}
70
+			}
71
+		}
72
+
73
+		if ($request->sortColumn && ($this->ordering === true || in_array($request->sortColumn, $this->ordering))) {
74
+			$query->orderBy($request->sortColumn, $request->sortOrder);
75
+		}
76
+
77
+		return $query;
78
+	}
79
+
80
+	/**
81
+	 * @inheritdoc
82
+	 */
83
+	public function getCount(GridViewRequest $request) : int
84
+	{
85
+		return $this->baseQuery($request)->count();
86
+	}
87
+
88
+	/**
89
+	 * @inheritdoc
90
+	 */
91
+	public function getData(GridViewRequest $request)
92
+	{
93
+		$query = $this->baseQuery($request);
94
+
95
+		if ($request->perPage == 0) {
96
+			return $query->get();
97
+		}
98
+
99
+		return $query->offset(($request->page - 1) * $request->perPage)
100
+			->limit($request->perPage)
101
+			->get();
102
+	}
103 103
 }
Please login to merge, or discard this patch.