Laravel Dingo / API пользовательский трансформатор

Я пытаюсь реализовать пользовательский преобразователь с помощью динго API (https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer) для моей модели Post, и я получаю это исключение:

Отсутствует аргумент 2 для PostTransformer :: transform (), вызывается в /home/…/vendor/league/fractal/src/Scope.php в строке 298 и определяется

Мой контроллер:

$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'
];

}
}

Что случилось?

1

Решение

Ваш ПостТрансформер не Трансформер. То, что вы указали, есть TransformerLayer (https://github.com/dingo/api/wiki/Transformers#custom-transformation-layer).

Однако Трансформер в Динго выглядит так:

<?php

use League\Fractal\TransformerAbstract;

class PostTransformer extends TransformerAbstract
{
public function transform(Post $post) {
return [
'id' => $post->id
// ...
];
}
}
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]