这是我参与8月更文挑战的第30天,活动详情查看:8月更文挑战
编辑用户信息
功能不复杂,我们只做昵称和性别的编辑,所以前端传入的参数只有nick_name
和sex
两个,直接更新用户的这两个字段即可。
/**
* updateUserInfo function
* 更新用户信息
* @return string
*/
public function updateUserInfo(Request $request)
{
// 获取传入的全部参数
$request = $request->all();
// 参数校验
if (empty($request['nick_name'])) {
return Util::ajaxMsg('-1', '传入参数不能为空');
}
$row = User::where('id', JWTAuth::parseToken()->touser()->id)
->update([
'nick_name' => $request['nick_name']
]);
return $row == 1
? Util::ajaxMsg('0', '修改信息成功', User::where('id', JWTAuth::parseToken()->touser()->id)->get())
: Util::ajaxMsg('-1', '修改信息失败');
}
在路由组中添加
// 更新用户信息
$router->post('/user/updateUserInfo', 'UserController@updateUserInfo');
测试成功~同时给前端返回最新查询的用户信息,前端需要更新本地的缓存。
用户修改密码接口
这也是个更新的操作,只不过在更新数据前,需要验证传入的旧密码是否正确,代码如下:
/**
* resetPassword function
* 用户修改密码
* @param Request $request
* @return void
*/
public function resetPassword(Request $request)
{
// 获取传入的全部参数
$request = $request->all();
if (empty($request['old_password']) || empty($request['password'])) {
return Util::ajaxMsg('-1', '原密码和新密码不能为空');
}
$acount['id'] = JWTAuth::parseToken()->touser()->id;
$acount['password'] = $request['old_password'];
if (!JWTAuth::attempt($acount)) {
return Util::ajaxMsg('-1', '旧密码输入错误');
}
if (empty($request['password']) || !Util::isPsw($request['password'])) {
return Util::ajaxMsg('-1', '密码必须为6-10位字符,包含数字和大小写');
}
$row = User::where('id', '=', $acount['id'])->update([
'password' => Hash::make($request['password']),
]);
return $row == 1 ? Util::ajaxMsg('0', '修改密码成功') : Util::ajaxMsg('-1', '修改密码失败');
}
// 用户修改密码
$router->post('/user/resetPassword', 'UserController@resetPassword');
清单模块接口
有了以上的用户模块的接口例子,去编写清单的增删改查就更容易的多,同样,我们新建一个 todoController.php 文件,并写入对应方法:获取代办事项列表(getTodoList
),新增待办事项(addTodo
),删除代办事项(delTodo
),更新代办事项(updateTodo
)。
获取代办事项列表
/**
* getTodoList function
* 获取代办事项列表
* @return void
*/
public function getTodoList()
{
$data = todo_list::where('user_id', JWTAuth::parseToken()->touser()->id)
->select('todo_id', 'content', 'status')
->orderBy('status')
->simplePaginate(20);
return Util::ajaxMsg('0', '获取成功', $data);
}
新增代办事项
/**
* addTodo function
* 新增待办事项
* @param Request $request
* @return void
*/
public function addTodo(Request $request)
{
// 获取传入的全部参数
$request = $request->all();
// 参数校验
if (empty($request['content'])) {
return Util::ajaxMsg('-1', '传入参数不能为空');
}
$newTodo = new todo_list;
$newTodo->user_id = JWTAuth::parseToken()->touser()->id; // 生成 11 位 TODO_ID
$newTodo->todo_id = Util::createId(); // 生成 11 位 TODO_ID
$newTodo->content = $request['content']; // 传入的邮箱
$newTodo->status = 1; // 状态,1-未完成,2-已完成
return $newTodo->save()
? Util::ajaxMsg('0', '新增成功')
: Util::ajaxMsg('-1', '新增失败');
}
更新代办事项
/**
* updateTodo function
* 更新代办事项
* @param Request $request
* @return void
*/
public function updateTodo(Request $request)
{
// 获取传入的全部参数
$request = $request->all();
// 参数校验
if (empty($request['status']) || empty($request['todo_id'])) {
return Util::ajaxMsg('-1', '传入参数不能为空');
}
$row = todo_list::where([
['user_id', JWTAuth::parseToken()->touser()->id],
['todo_id', $request['todo_id']],
])
->update([
'status' => $request['status'],
]);
return $row == 1
? Util::ajaxMsg('0', '修改信息成功')
: Util::ajaxMsg('-1', '修改信息失败');
}
删除代办事项
/**
* delTodo function
* 删除代办事项
* @param Request $request
* @return void
*/
public function delTodo(Request $request)
{
// 获取传入的全部参数
$request = $request->all();
// 参数校验
if (empty($request['todo_id'])) {
return Util::ajaxMsg('-1', '传入参数不能为空');
}
$row = todo_list::where([
['user_id', JWTAuth::parseToken()->touser()->id],
['todo_id', $request['todo_id']],
])
->delete();
return $row == 1
? Util::ajaxMsg('0', '删除成功')
: Util::ajaxMsg('-1', '删除失败');
}
并增加以上接口对应路由
// 获取代办事项列表
$router->get('/todo/getTodoList', 'TodoController@getTodoList');
// 新增待办事项
$router->post('/todo/addTodo', 'TodoController@addTodo');
// 更新代办事项
$router->post('/todo/updateTodo', 'TodoController@updateTodo');
// 删除代办事项
$router->post('/todo/delTodo', 'TodoController@delTodo');