繁体   English   中英

Laravel Dingo / API定制转换器

[英]Laravel dingo/api custom transformer

我正在尝试为我的Post模型使用dingo api( https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer )实现自定义转换器,但出现了以下异常:

在第298行的/home/.../vendor/league/fractal/src/Scope.php中调用的PostTransformer :: transform()缺少参数2

我的控制器:

$post = Post::findOrFail(2);

return $this->item($post, new PostTransformer);

我的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'
        ];

    }
}

怎么了?

您的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
            // ...
        ];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM