PHP code example of lukevear / laravel-transformer

1. Go to this page and download the library: Download lukevear/laravel-transformer library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

lukevear / laravel-transformer example snippets


LukeVear\LaravelTransformer\TransformerServiceProvider::class,



namespace App\Transformers;

use App\User;
use LukeVear\LaravelTransformer\AbstractTransformer;

class UserTransformer extends AbstractTransformer
{
        /**
         * Transform the supplied data.
         *
         * @param User $model
         * @return array
         */
        public function run($model)
        {
            return [
                'id'    => $model->id,
                'name'  => $model->first_name . ' ' . $model->last_name
            ];
        }
}

return response()->json(
    transform($user, new UserTransformer)
);



return [

    /*
    |--------------------------------------------------------------------------
    | Model <-> Transformer Binding Groups
    |--------------------------------------------------------------------------
    |
    | This allows you to specify which transformers should automatically be
    | used when the transform() function is provided a Eloquent model.
    |
    */
    'groups' => [
        'default' => [
            // App\User::class => App\Transformers\UserTransformer::class,
        ],
        'v1' => [
            App\Models\User::class                  => App\Transformers\v1\UserTransformer::class,
        ],
        'v2' => [
            App\Models\User::class                  => App\Transformers\v2\UserTransformer::class,
        ],
    ],

];

public function handle($request, Closure $next)
{
    if ($request->is('v1*')) {
        TransformerEngine::setGroup('v1');
    } else {
        TransformerEngine::setGroup('v2');
    }

    return $next($request);
}

return response()->json(
    transform($user)
);

 
 
 namespace App\Transformers;
 
 use App\User;
 use LukeVear\LaravelTransformer\AbstractTransformer;
 
 class UserTransformer extends AbstractTransformer
 {
         /**
          * Transform the supplied data.
          *
          * @param User $model
          * @return array
          */
         public function run($model)
         {
             $response = [
                 'id'    => $model->id,
                 'name'  => $model->first_name . ' ' . $model->last_name
             ];
             
             if ($this->hasInclude('settings')) {
                 $response['settings'] = transform($model->settings, new UserSettingsTransformer);
             }
             
             return $response;
         }
 }
 

return response()->json(
    transform($user, (new UserTransformer)->setIncludes(['settings'])
);

php artisan vendor:publish --provider="LukeVear\LaravelTransformer\TransformerServiceProvider"