【发布时间】:2016-03-23 14:57:57
【问题描述】:
我正在创建一组 REST API,以便使用 laravel 存储库模式向我的移动应用程序公开。我使用 dingo 作为 REST 框架。我对如何使用转换器完成 API 的响应感到困惑。
我有以下控制器功能
if(!$user) {
//Authenticate with Twitter and authenticate
//Register user and issue jwt
$user = Sentinel::register($device_details);
$user_data = json_decode($user,true);
$device_details['users_id'] = $user['users_id'] = $user_data['id'];
$this->device_details->create($device_details);
}
$token = JWTAuth::fromUser($user);
$user_array = $user->toArray();
$user_array['token'] = $token; //An array containing user details and token
return $this->response->item($user_array, new UserTransformer)->setStatusCode(200); //I can only pass an object (eloquent) as the #1 parameter
我的变形金刚课
namespace App\Api\V1\Transformers;
use App\User;
use League\Fractal\TransformerAbstract;
class UserTransformer extends TransformerAbstract {
public function transform(User $user)
{
return [
'users_id' => (int) $user->users_id,
'AUTH-TOKEN' => $user->token // Doesnt comes from database,
...
];
}
}
现在我的问题是,
- 我只能使用带有变压器的雄辩对象吗?
- 在这种情况下,令牌是由 jwt 库生成的,我将它与数组绑定为单个用户数组。现在如何将这个数组传递给演示者。
- 分形转换器的文档没有说明将数组传递给演示者。我的数据可能并不总是来自一个雄辩的对象。
- 我该如何处理这种情况?
- 为什么要使用演示者?我会使用演示器或变压器,对吗?
【问题讨论】:
-
检查我的答案,它可能对你有用
标签: php json rest laravel response