这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战
一、用户详情接口
1.1 配置路由模型
在app/Http/Kernel.php
中增加代码:
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
在routes/admin.php
中添加这个中间件:
1.2 用户详情控制器方法
/**
* 用户详情
*/
public function show(User $user)
{
return $this->response()->item($user, new UserTransformer());
}
1.3 效果
可以看到这里给我们返回了data
再包含一个对象,获取用户详情的我们只想要一个对象,里面是信息的话,就可以使用一个插件liyu/dingo-serializer-switch。
运行命令 composer require liyu/dingo-serializer-switch
:
进行安装。
这里给出了用法:
修改routes/admin.php
:
效果: 可以看到返回就是一个对象了。
二、封禁和启用用户接口
2.1 用户表增加字段
1、生成迁移文件
运行命令生成迁移文件php artisan make:migration add_is_locked_to_users_table --table=users
2021_08_09_181147_add_is_locked_to_users_table.php
写入代码:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddIsLockedToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table
->tinyInteger('is_locked')
->default(0)
->after('email') // after 将is_locked放在email字段后面
->comment('用户禁用状态: 0启用,1禁用');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
//
});
}
}
2、执行迁移文件
运行命令php artisan migrate
3、效果
可以看到用户表这里已经插入了is_locked
字段,并且在email
字段后面。
2.2 控制器方法
1、方法
/**
* 禁用用户和启用用户
*/
public function lock(User $user)
{
$user -> is_locked = $user ->is_locked== 0 ? 1 : 0;
$user -> save();
return $this->response()->noContent(); // 更新直接返回无响应的状态
}
2、效果
三、修改登陆
3.1 将锁定的用户禁止登陆。
登陆控制器LoginController.php
:
/**
* 登陆
*/
public function login(LoginRequest $request)
{
$credentials = request(['email', 'password']);
if (!$token = auth('api')->attempt($credentials)) {
return $this->response()->errorUnauthorized();
}
// 检查用户信息
$user = auth('api')->user();
if ($user -> is_locked == 1) {
return $this->response->errorForbidden('用户被锁定');
}
return $this->respondWithToken($token);
}
3.2 效果
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!