Ada*_*ver 1 php api rest restful-architecture laravel
我正在尝试使用dingo api(https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer)为我的Post模型实现一个自定义转换器,我得到了这个例外:
缺少PostTransformer :: transform()的参数2,在第298行的/home/.../vendor/league/fractal/src/Scope.php中调用并定义
我的控制器:
$post = Post::findOrFail(2);
return $this->item($post, new PostTransformer);
Run Code Online (Sandbox Code Playgroud)
我的PostTransformer课程:
<?php
use Illuminate\Http\Request;
use Dingo\Api\Transformer\Binding;
use Dingo\Api\Transformer\TransformerInterface;
class PostTransformer implements TransformerInterface
{
public function transform($response, $transformer, Binding $binding, Request $request)
{
// Make a call to your transformation layer to transformer the given response.
return [
'kkk' => 'val'
];
}
}
Run Code Online (Sandbox Code Playgroud)
怎么了?
小智 5
您的PostTransformer不是变形金刚.您指定的是TransformerLayer(https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer).
然而,Dingo的Transformer看起来像这样:
<?php
use League\Fractal\TransformerAbstract;
class PostTransformer extends TransformerAbstract
{
public function transform(Post $post) {
return [
'id' => $post->id
// ...
];
}
}
Run Code Online (Sandbox Code Playgroud)