@@ -34,4 +34,69 @@ classes based on them.
34
34
<link rel =" stylesheet" href =" //getbootstrap.com/docs/4.0/dist/css/bootstrap.min.css" >
35
35
```
36
36
37
+ ## Usage in Controllers
37
38
39
+ ### 1. Import classes
40
+ ``` php
41
+ use Apphp\DataGrid\Pagination;
42
+ use Apphp\DataGrid\Filter;
43
+ ```
44
+
45
+ ### 2. Define filters and filter field types
46
+ ``` php
47
+ $filters = [
48
+ 'act' => ['type' => 'equals', 'value' => 'search'],
49
+ 'email' => ['title' => 'Email', 'type' => 'string', 'compareType' => '%like%', 'validation' => ['maxLength' => 150]],
50
+ 'name' => ['title' => 'Name', 'type' => 'string', 'compareType' => '%like%'],
51
+ 'username' => ['title' => 'Username', 'type' => 'string', 'compareType' => '%like%'],
52
+ 'user_id' => ['title' => 'ID', 'type' => 'integer', 'compareType' => '=', 'validation' => ['max' => 10000000]],
53
+ ];
54
+ ```
55
+
56
+ ### 3. Handle filters and prepare SQL builder
57
+ ``` php
58
+ $query = User::sortable()->orderByDesc('user_id');
59
+ $request = request(); // or get it via function param, like foo(Request $request){...}
60
+ $url = route('backend.users.submitRote');
61
+ $cancelUrl = $url;
62
+
63
+ $filter = Filter::init($query, $request, $filters, $url, $cancelUrl, 'collapsed');
64
+ $filter = $filter::filter();
65
+ $filterFields = $filter::getFilterFields();
66
+ $query = $filter::getQuery();
67
+ ```
68
+
69
+ ### 4. Sorting
70
+ ``` php
71
+ $sort = $request->get('sort');
72
+ $direction = $request->get('direction');
73
+ ```
74
+
75
+ ### 5. Pagination
76
+ ``` php
77
+ $pagination = Pagination::init($query, 20, $sort, $direction, $filterFields)::paginate();
78
+ $paginationFields = $pagination::getPaginationFields();
79
+ $users = $pagination::getRecords();
80
+ ```
81
+
82
+ ### 6. Rendering view
83
+ ``` php
84
+ return view('backend.users.mainView', compact('users', 'filterFields', 'paginationFields'));
85
+ ```
86
+
87
+ ## Usage in View files
88
+ ``` html
89
+ <script >
90
+ {!! \Apphp\DataGrid\Filter:: renderJs () !! }
91
+ </script >
92
+
93
+ {!! \Apphp\DataGrid\Filter::renderFields() !!}
94
+
95
+ <!-- YOUR TABLE WITH RECORDS DATA -->
96
+ @foreach ($users as $user)
97
+
98
+ @endforeach
99
+ <!-- YOUR TABLE WITH RECORDS DATA -->
100
+
101
+ {!! \Apphp\DataGrid\Pagination::renderLinks() !!}
102
+ ```
0 commit comments