laravel api 获取个人信息|转换层的使用
2018年11月12日1.创建路由
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php use Illuminate\Http\Request; $api = app('Dingo\Api\Routing\Router'); $api->version('v1', ['namespace' => 'App\Http\Controllers\Api'], function ($api) { #定义了一个命名空间 $api->group(['middleware' => 'api.throttle', 'limit' => config('api.rate_limits.sign.limit'), 'expires' => config('api.rate_limits.sign.expires')], function ($api) { #定义了请求次数 . . . $api->group(['middleware' => 'api.auth'], function ($api) { #必须要有token才能访问的接口 $api->get('user', 'UsersController@me')->name('api.user.show'); #获取我的信息的控制器 }); }); }); |
2.创建数据转换层
1 2 |
$ mkdir app/Transformers $ touch app/Transformers/UserTransformer.php |
编辑app/Transformers/UserTransformer.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php namespace App\Transformers; use App\Models\User; use League\Fractal\TransformerAbstract; class UserTransformer extends TransformerAbstract { /** * @param User $user * @return array */ public function transform(User $user) { return [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'avatar' => $user->avatar, 'introduction' => $user->introduction, 'bound_phone' => $user->phone ? true : false, 'bound_wechat' => ($user->weixin_unionid || $user->weixin_openid) ? true : false, 'last_actived_at' => $user->last_actived_at->toDateTimeString(), 'created_at' => $user->created_at->toDateTimeString(), 'updated_at' => $user->updated_at->toDateTimeString(), ]; } } |
3.编辑控制器app/Http/Controllers/Api/UsersController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php namespace App\Http\Controllers\Api; use App\Models\User; use Illuminate\Http\Request; use App\Transformers\UserTransformer; use App\Http\Requests\Api\UserRequest; class UsersController extends Controller { /** * 获取用户数据 * @return mixed */ public function me() { return $this->response->item($this->user(), new UserTransformer()); } } |