Dingo 自定义 Serializers 失败
如果使用include嵌套数据的话,会多出data命名空间,现在想取消嵌套的data
于是在网上查找了方法,代码如下,没有成功,不知道哪里出错了
-
自定义一个Serializers
namespace App\Serializers; use League\Fractal\Serializer\ArraySerializer; class NoDataArraySerializer extends ArraySerializer { public function collection($resourceKey, array $data) { return $data; } public function item($resourceKey, array $data) { return $data; } }
-
在AppServiceProvider添加
public function boot() { // 自定义Dingo Transformer返回格式 $this->app['Dingo\Api\Transformer\Factory']->setAdapter(function ($app) { $fractal = new \League\Fractal\Manager; $fractal->setSerializer(new \App\Serializers\NoDataArraySerializer()); return new \Dingo\Api\Transformer\Adapter\Fractal($fractal); }); }
-
在控制器使用
return $this->response->collection(
$product->merchantId()->get(),
$this->transformer
);
推荐文章: