Skip to content

Commit 0e7bb37

Browse files
authored
Merge pull request yajra#49 from c00p3r/patch-1
Updated docs due to changes in yajra/laravel-datatables-fractal
2 parents d653a82 + 846c35e commit 0e7bb37

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

response-fractal.md

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,70 @@
11
# Response using Transformer
22

3+
You'll need to install [laravel-datatables-fractal package](https://github.com/yajra/laravel-datatables-fractal) if you haven't already.
4+
35
When using tranformer, all response manipulations must be done via transformer.
46
Thus `addColumn`, `editColumn`, `removeColumn`, `setRowAttr`, `setClassAttr`, etc... should be avoided when using fractal.
57

8+
## Closure
9+
10+
You can pass a closure which will receive an item of the result collection and should return an array.
11+
612
```php
713
use DataTables;
8-
use App\Transformers\UserTransformer;
14+
use App\User;
15+
16+
Route::get('user-data', function() {
17+
$model = User::query();
18+
19+
return DataTables::eloquent($model)
20+
->setTransformer(function($item){
21+
return [
22+
'id' => (int) $user->id,
23+
'name' => $user->name,
24+
'email' => $user->email,
25+
'created_at' => (string) $user->created_at,
26+
'updated_at' => (string) $user->updated_at,
27+
];
28+
})
29+
->toJson();
30+
});
31+
```
32+
33+
Thus you can make use of Laravel API Resource.
34+
35+
```php
36+
use DataTables;
37+
use App\User;
38+
use App\Http\Resources\UserResource;
939

1040
Route::get('user-data', function() {
11-
$model = App\User::query();
41+
$model = User::query();
1242

13-
return DataTables::eloquent($model)
14-
->setTransformer(new UserTransformer)
15-
->toJson();
43+
return DataTables::eloquent($model)
44+
->setTransformer(function($item){
45+
return UserResource::make($item)->resolve();
46+
})
47+
->toJson();
1648
});
1749
```
1850

19-
## Creating Transformer
51+
52+
## Transformer
53+
54+
You can use Transformer class.
55+
56+
```php
57+
use DataTables;
58+
use App\Transformers\UserTransformer;
59+
60+
Route::get('user-data', function() {
61+
$model = App\User::query();
62+
63+
return DataTables::eloquent($model)
64+
->setTransformer(new UserTransformer)
65+
->toJson();
66+
});
67+
```
2068

2169
### Manual Way
2270

@@ -163,4 +211,4 @@ class UserTransformer extends TransformerAbstract
163211
return $this->collection($user->posts, new PostTransformer);
164212
}
165213
}
166-
```
214+
```

0 commit comments

Comments
 (0)