1

変換されたオブジェクトを他の応答とともに追加したい場合は、次のコードを使用しました。

$accessToken = Authorizer::issueAccessToken();

    $user = User::where('email', $request->get('username'))->with('profile')->first();
    if ($user) {
        $accessToken['user'] = $this->response->item($user, new UserTransformer);
    }

    return $accessToken;

予想される応答:

{
    "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "token_type": "Bearer",
    "expires_in": 31536000,
    "data": {
      "id": 1,
      "email": "xxxxx",
      "profile": {
        "data": {
          "id": 1,
          "first_name": "Muhammad",
          "last_name": "Shakeel",
        }
      }
    }
}

変換されたオブジェクトを取得できません。複数の変換されたオブジェクトを応答で追加するためのより良い方法が必要です。何か不足していますか?

現在の応答を編集 すると、変換なしでユーザー オブジェクトが返されます。次のようにユーザーが変換したオブジェクトのみを返すと、正しい変換されたオブジェクトが返されます。

return $this->response->item($user, new UserTransformer);
4

2 に答える 2

1

イシュー トラッカー ( https://github.com/dingo/api/issues/743#issuecomment-160514245 ) で議論されているように、jason lewis はチケットに次のように応答しました。

現時点でこれを行う唯一の方法は、それを逆にすることです。したがって、応答アイテムを返し、アクセス トークン データをおそらくメタ データとして追加します。

だから、このようなもの。

return $this->response->item($user, new UserTransformer)->setMeta($accessToken);

応答には、アクセス トークン データを含むメタ データ キーが含まれます。

于 2015-12-01T12:42:55.977 に答える
0

内部リクエストを使用して動作するようにしました。https://github.com/dingo/api/wiki/Internal-Requests

だからあなたができることは

変換されたユーザー オブジェクトを取得するルートがあるとします。api/users/{email_id}?access_token=...

access_token の発行中に、次のことができます。

$dispatcher = app('Dingo\Api\Dispatcher');
$array = Authorizer::issueAccessToken();

$array['user'] = $dispatcher->get('api/users/'.$request->get("username").'?access_token='.$array['access_token']);
return $array;

これにより、変換されたデータが返されます。

:ユーザー データを取得するルートが必要になります。

/api/users/{email-id}email-id が存在しないケースを処理する必要があります。

于 2015-11-28T21:42:15.707 に答える