dev-master
9999999-devFractal Transformer generator for Laravel
MIT
The Requires
The Development Requires
by Lasse Lehtinen
0.1.0
0.1.0.0Fractal Transformer generator for Laravel
MIT
The Requires
The Development Requires
by Lasse Lehtinen
Wallogit.com
2017 © Pedro Peláez
Fractal Transformer generator for Laravel
The package provides an easy way to generate Fractal Transformers for your Laravel applications. The package automatically scans the models Eloquent relationships and attributes and generates the Transformer boiler plate. It also automatically adds casting for integer and boolean fields., (*2)
class TestModel extends Model
{
/**
* Example hasMany relationship
*/
public function hasManySomethings()
{
return $this->hasMany(SomeOtherModel::class);
}
}
public function up()
{
Schema::create('test_models', function (Blueprint $table) {
$table->increments('id_field');
$table->boolean('boolean_field');
$table->string('string_field');
});
}
<?php
namespace App;
use League\Fractal;
use \lasselehtinen\Cybertron\Tests\TestModel;
class TestTransformer extends Fractal\TransformerAbstract
{
/**
* List of resources to automatically include
*
* @var array
*/
protected $defaultIncludes = [
'hasManySomethings',
];
/**
* Transform TestModel
*
* @param TestModel $testModel
* @return array
*/
public function transform(TestModel $testModel)
{
return [
'id_field' => (integer) $testModel->id_field,
'boolean_field' => (boolean) $testModel->boolean_field,
'string_field' => $testModel->string_field,
];
}
/**
* Include HasManySomethings
*
* @param TestModel $testModel
* @return \League\Fractal\Resource\Collection
*/
public function includeHasManySomethings(TestModel $testModel)
{
return $this->collection($testModel->hasManySomethings, new SomeOtherModelTransformer);
}
}
You can pull in the package via composer: ``` bash $ composer require lasselehtinen/cybertron --dev, (*3)
Since you only need the generator for development, don't add the generator the providers array in `config/app.php`. Instead add it to `app/Providers/AppServiceProvider.php`as shown below: ```php public function register() { if ($this->app->environment() == 'local') { $this->app->register(lasselehtinen\Cybertron\CybertronServiceProvider::class); } }
Run the artisan command make:transformer and give the Transformers name and the model with the full namespace like so:, (*4)
php artisan make:transformer PostTransformer --model=\\App\\Post
Similar way as in Laravels built-in generators, you can provide a namespace for the generated Transformer., (*5)
php artisan make:transformer \\App\\Api\\V1\\Transformers\\PostTransformer --model=\\App\\Post
The MIT License (MIT). Please see License File for more information., (*6)
Fractal Transformer generator for Laravel
MIT
Fractal Transformer generator for Laravel
MIT