简介
返回值一般采用dingo
的 transformer,新版用source的方法。
只要定义好模型关联之后就可以用include自由包含所需要的对象(数组)了
include全部采用驼峰法命名!否则会出大问题!
如果是单个对象则用$this->response->item($obj, new xxxTransformer())
多个对象包含用$this->response->collection($objs, new xxxTransformer())
可以编写命令文件生成transformer
1.新建 app/Console/Commands/stubs/transformer.stub
namespace DummyNamespace; | |
use League\Fractal\TransformerAbstract; | |
class DummyClass extends TransformerAbstract | |
{ | |
protected $availableIncludes = []; | |
public function transform(Obj $obj){ | |
return []; | |
} | |
} |
2.新建命令文件
php artisan make:command MakeTransformer | |
namespace App\Console\Commands; | |
use Illuminate\Console\GeneratorCommand; | |
class MakeTransformer extends GeneratorCommand | |
{ | |
/** | |
* The name and signature of the console command. | |
* | |
* @var string | |
*/protected $name = 'make:transformer'; | |
/** | |
* The console command description. | |
* | |
* @var string | |
*/protected $description = 'create a new transformer class'; | |
protected $type = 'Transformer';/** | |
* Get the stub file for the generator. | |
* | |
* @return string | |
*/protected function getStub(){return __DIR__.'/stubs/transformer.stub';} | |
/** | |
* Get the default namespace for the class. | |
* | |
* @param string $rootNamespace | |
* @return string | |
*/protected function getDefaultNamespace($rootNamespace){return $rootNamespace.'\Transformers';} | |
} |