コンバーターを通じて、オブジェクトを配列に変換し、ページ分割された結果やネストされたセットを含む整数型およびブール型に強制的に変換できます。協会。
この章では主にコンバータとその使用法について説明します。 ここでのコンバータには次の 2 つの意味が含まれます。
app('Dingo\Api\Transformer\Factory')->register('User', 'UserTransformer');
Fractal を使用する前に、公式ドキュメントを読むことをお勧めします。
Lumen を使用している場合は、スタートアップ ファイル (bootstrap.php) でこれを行うことができます:
$this->app['Dingo\Api\Transformer\Factory']->setAdapter(function ($app) { return new Dingo\Api\Transformer\Adapter\Fractal(new League\Fractal\Manager, 'include', ',');});
app('Dingo\Api\Transformer\Factory')->setAdapter(function ($app) { return new Dingo\Api\Transformer\Adapter\Fractal(new League\Fractal\Manager, 'include', ',');});
リソース キー
return $this->item($user, new UserTransformer, ['key' => 'user']);
最も一般的な使用例は、ページング カーソルを設定するか、応答シリアライザーを変更することです。
リソース キー パラメーターを渡したくない場合は、この空のパラメーターを省略できます。配列:
return $this->collection($users, new UserTransformer, [], function ($resource, $fractal) { $resource->setCursor($cursor);});
return $this->collection($users, new UserTransformer, function ($resource, $fractal) { $fractal->setSerializer(new CustomSerializer);});
変換が唯一の必須メソッドであり、必要な他のメソッドを自由に追加できます。変換メソッドの目的は、$response を取得し、$transformer とともに処理のために変換層に渡すことです。その後、変換層は配列を返し、最後にこの配列が変換メソッドによって返されます。変換層が単純な場合は、すべてのロジックをこのクラスに完全に実装できます。
use Dingo\Api\Http\Request;use Dingo\Api\Transformer\Binding;use Dingo\Api\Contract\Transformer\Adapter;class MyCustomTransformer implements Adapter{ public function transform($response, $transformer, Binding $binding, Request $request) { // Make a call to your transformation layer to transformer the given response. }}
$bindings パラメーターは、メタデータの追加や、開発者がコールバックを介して変換レイヤーと対話できるようにするなど、変換レイヤーにさらに多くの機能が含まれている場合に便利です。
$request パラメータは現在実行されている HTTP リクエストで、変換レイヤーがクエリ文字列パラメータやその他の関連データを必要とする場合に役立ちます。