Skip to content

Commit 1dfa2b0

Browse files
committedNov 12, 2015
Merge branch 'hotfix/v5.12.0'
2 parents 7d5777c + 5e317c6 commit 1dfa2b0

File tree

4 files changed

+45
-10
lines changed

4 files changed

+45
-10
lines changed
 

‎change-log.md

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@
88

99
##Change Log
1010

11+
###v5.12.0
12+
- Added support for Fractal Serializer.
13+
- Added config for default serializer.
14+
- Note: Should be used along with setTransformer method.
15+
- Usage:
16+
return Datatables::of($model)
17+
->setTransformer(ModelTransformer::class)
18+
->setSerializer(ModelSerializer::class)
19+
->make(true);
20+
1121
###v5.11.14
1222
- Sort by a multi-line 'select as' query. PR #245
1323

‎readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ This package is created to handle [server-side](https://www.datatables.net/manua
2525
- Extended column filtering via [`filterColumn`](http://yajra.github.io/laravel-datatables/api/source-class-yajra.Datatables.Engines.BaseEngine.html#489-503) API.
2626
- Extended column ordering via [`orderColumn`](http://yajra.github.io/laravel-datatables/api/source-class-yajra.Datatables.Engines.BaseEngine.html#505-519) API.
2727
- Extended Query Builder functionality allowing you to filter using Datatables class directly.
28-
- Decorate your data output using [`league\fractal`](https://github.com/thephpleague/fractal) Transformer.
28+
- Decorate your data output using [`league\fractal`](https://github.com/thephpleague/fractal) Transformer with Serializer support.
2929
- Works with Laravel Dependency Injection and IoC Container.
3030
- Provides a [DataTable Html Builder](http://datatables.yajrabox.com/html) to help you use the package with less code.
3131
- Provides XSS filtering function to optionally escape all or specified column values using `escapeColumns('*'\['column'])` method.

‎src/yajra/Datatables/Engines/BaseEngine.php

+29-7
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
use Illuminate\Support\Str;
1616
use League\Fractal\Manager;
1717
use League\Fractal\Resource\Collection;
18-
use League\Fractal\TransformerAbstract;
18+
use League\Fractal\Serializer\DataArraySerializer;
19+
use League\Fractal\Serializer\SerializerAbstract;
1920
use yajra\Datatables\Contracts\DataTableEngine;
2021
use yajra\Datatables\Helper;
2122
use yajra\Datatables\Processors\DataProcessor;
2223

2324
abstract class BaseEngine implements DataTableEngine
2425
{
25-
2626
/**
2727
* Datatables Request object.
2828
*
@@ -79,7 +79,6 @@ abstract class BaseEngine implements DataTableEngine
7979
*/
8080
protected $query_type;
8181

82-
8382
/**
8483
* Extra/Added columns.
8584
*
@@ -109,21 +108,21 @@ abstract class BaseEngine implements DataTableEngine
109108
protected $autoFilter = true;
110109

111110
/**
112-
* Callback to override global search
111+
* Callback to override global search.
113112
*
114113
* @var \Closure
115114
*/
116115
protected $filterCallback;
117116

118117
/**
119-
* Parameters to passed on filterCallback
118+
* Parameters to passed on filterCallback.
120119
*
121120
* @var mixed
122121
*/
123122
protected $filterCallbackParameters;
124123

125124
/**
126-
* DT row templates container
125+
* DT row templates container.
127126
*
128127
* @var array
129128
*/
@@ -149,7 +148,7 @@ abstract class BaseEngine implements DataTableEngine
149148
protected $prefix;
150149

151150
/**
152-
* Database driver used
151+
* Database driver used.
153152
*
154153
* @var string
155154
*/
@@ -162,6 +161,13 @@ abstract class BaseEngine implements DataTableEngine
162161
*/
163162
protected $isFilterApplied = false;
164163

164+
/**
165+
* Fractal serializer.
166+
*
167+
* @var SerializerAbstract
168+
*/
169+
protected $serializer;
170+
165171
/**
166172
* Setup search keyword.
167173
*
@@ -545,6 +551,19 @@ public function setTransformer($transformer)
545551
return $this;
546552
}
547553

554+
/**
555+
* Set fractal serializer class.
556+
*
557+
* @param string $serializer
558+
* @return $this
559+
*/
560+
public function setSerializer($serializer)
561+
{
562+
$this->serializer = $serializer;
563+
564+
return $this;
565+
}
566+
548567
/**
549568
* Organizes works.
550569
*
@@ -665,6 +684,9 @@ public function render($object = false)
665684
$fractal->parseIncludes($this->request->get('include'));
666685
}
667686

687+
$serializer = $this->serializer ?: Config::get('datatables.fractal.serializer', DataArraySerializer::class);
688+
$fractal->setSerializer(new $serializer);
689+
668690
//Get transformer reflection
669691
//Firs method parameter should be data/object to transform
670692
$reflection = new \ReflectionMethod($this->transformer, 'transform');

‎src/yajra/Datatables/config/config.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
return [
44

5-
'search' => [
5+
'search' => [
66
'case_insensitive' => true,
77
'use_wildcards' => false,
8-
]
8+
],
99

10+
'fractal' => [
11+
'serializer' => League\Fractal\Serializer\DataArraySerializer::class,
12+
],
1013
];

0 commit comments

Comments
 (0)
Failed to load comments.