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