Skip to content

Fractal Transformer Serializer

You can set the serializer to be used by DataTables using the setSerializer API. Serializer should be used with setTransformer API.


Basic Usage

use Yajra\DataTables\Facades\DataTables;
 
Route::get('user-data', function () {
$model = App\Models\User::query();
 
return DataTables::eloquent($model)
->setTransformer(new App\Transformers\UserTransformer)
->setSerializer(new App\Serializers\CustomSerializer)
->toJson();
});

Available Serializers

The Fractal package provides several built-in serializers:

Serializer Description
DataArraySerializer Returns data as a plain array (default)
ArraySerializer Returns data wrapped in a data key
JsonApiSerializer Returns data in JSON API format

Creating a Custom Serializer

<?php
// app/Serializers/CustomSerializer.php
 
namespace App\Serializers;
 
use League\Fractal\Serializer\ArraySerializer;
 
class CustomSerializer extends ArraySerializer
{
// Override methods as needed
}

Example with JSON API

use Yajra\DataTables\Facades\DataTables;
use App\Transformers\UserTransformer;
use League\Fractal\Serializer\JsonApiSerializer;
 
Route::get('user-data', function () {
$model = App\Models\User::query();
 
return DataTables::eloquent($model)
->setTransformer(new UserTransformer)
->setSerializer(new JsonApiSerializer)
->toJson();
});

See Also