-
Notifications
You must be signed in to change notification settings - Fork 21
Transformable Trait
Cyvelnet edited this page Oct 11, 2017
·
4 revisions
With the assists of artisan command php artisan make:transformer UserTransformer -m User
, it makes data serialization and transformation a breeze but writing Fractal::item($data, new DataTransformer)
and Fractal::collection($data, new DataTransformer)
is become a pain as application grow and now a new Transformable Trait is here to join the fun.
use App\Http\Controllers\Controller;
use App\Transformers\UserTransformer;
public class UserController extends Controller
{
// it should goes to the base Controller class, but for demostration purpose lets have it here
use \Cyvelnet\Laravel5Fractal\Traits\Transformable;
// override default serialize in class scope
// protected $serializer = \Acme\My\CustomSerialize::class;
protected $transformer = UserTransformer::class;
public function index(){
return $this->transform(User::paginate());
}
public function show($id){
return $this->transform(User::find($id));
}
}
Refer to the example above, the transformation look shorter and easier to read, no item()
or collection()
and no duplicated new UserTransformer()
all over the controller.