Skip to content

Commit ddd1a52

Browse files
committed
Added code examples in README
1 parent 082bd75 commit ddd1a52

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

README.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,69 @@ classes based on them.
3434
<link rel="stylesheet" href="//getbootstrap.com/docs/4.0/dist/css/bootstrap.min.css">
3535
```
3636

37+
## Usage in Controllers
3738

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

Comments
 (0)