public function update(Request $request, User $user)
{
// 验证规则.
$rules = [
'email' => [
'nullable',
'email',
Rule::unique('users', 'email')->ignore($user->id),
],
'name' => [
'required',
'username',
'min:2',
'max:12',
Rule::unique('users', 'name')->ignore($user->id),
],
'phone' => [
'nullable',
'cn_phone',
Rule::unique('users', 'phone')->ignore($user->id),
],
'roles' => [
'required',
'array',
Rule::in(Role::all()->keyBy('id')->keys()->toArray()),
],
]; // 消息
$messages = [
'email.email' => '请输入正确的 E-Mail 格式',
'email.unique' => '邮箱已经存在',
'name.required' => '请输入用户名',
'name.username' => '用户名只能以非特殊字符和数字开头,不能包含特殊字符',
'name.min' => '用户名最少输入两个字',
'name.max' => '用户名最多输入十二个字',
'name.unique' => '用户名已经被其他用户所使用',
'phone.cn_phone' => '请输入大陆地区合法手机号码',
'phone.unique' => '手机号码已经存在',
'roles.required' => '必须选择用户组',
'roles.array' => '发送数据格式错误',
'roles.in' => '选择的用户组中存在不合法信息',
]; $this->validate($request, $rules, $messages); foreach ($request->only(['email', 'name', 'phone']) as $key => $value) {
$user->$key = $value ?: null;
}
$oldPwdHash = $user->getImPwdHash();
if ($password = $request->input('password')) {
$user->createPassword($password);
} $easeMob = new EaseMobController(); $response = app('db.connection')->transaction(function () use ($user, $request, $easeMob, $oldPwdHash) {
$user->save();
$user->roles()->sync(
$request->input('roles')
); // 环信重置密码
$request->user_id = $user->id;
$request->old_pwd_hash = $oldPwdHash;
$im = $easeMob->resetPassword($request);
if ($im->getStatusCode() != 201) {
return false;
} return true;
}); return response()->json([
'messages' => [
$response === true ? '更新成功' : '更新失败',
],
])->setStatusCode($response === true ? 201 : 422);
}

laravel 更新验证的更多相关文章

  1. laravel 数据验证

    laravel 数据验证 在保存数据之前进行数据验证 类需要继承 Controller 然后用  $this->validate( $request , ['title' => 'requ ...

  2. laravel 自定义验证 Validator::extend

    laravel 自定义验证 $messages = [ 'name.integer' => '名字不能为整型', 'name.max' => '长度不能超过5', ]; public st ...

  3. Laravel 更新数据时在表单请求验证中排除自己,检查指定字段唯一性

    原文地址:https://moell.cn/article/24 不错的laravel网站 需求场景 修改用户信息时,在表单请求验证中排除当前邮箱所在的记录行,并检查邮箱的唯一性. Laravel版本 ...

  4. 如何 Laravel 中验证 zip 压缩包里的文件?

    在 Laravel 程序中上传文件时,请求验证可以很好验证上传的文件.你可以要求上传文件必须为 图片 , 也可以限制文件字节 大小 , 也可以根据 mime types 或者 文件扩展名 过滤文件. ...

  5. Laravel登录验证碰到的坑 哈希验证匹配问题

    用laravel 写登录验证 本来是用Crypt加密 添加用户到数据库的 后来验证密码  解密时一直报错 The payload is invaild 由于本人是laravel框架小白 自己思考许久未 ...

  6. Laravel Auth验证

    laravel自带了auth类和User模型来帮助我们很方便的实现用户登陆.判断. 首先,先配置一下相关参数 app/config/auth.php: model 指定模型 table 指定用户表 p ...

  7. Laravel 用户验证Auth::attempt fail的问题

    1.在laravel项目中,当使用Auth::attempt()用于用户验证时,Auth::attempt()会把密码通过Hash进行转换,变成一串不知啥的长字符,如果你在数据库里事先设置了明文的密码 ...

  8. laravel 可用验证规则

    accepted 验证的字段必须为 yes. on. 1.或 true.这在确认服务条款是否同意时相当有用. active_url 相当于使用了 PHP 函数 dns_get_record,验证的字段 ...

  9. laravel身份验证-Auth的使用

    laravel自带了auth类和User模型来帮助我们很方便的实现用户登陆.判断.首先,先配置一下相关参数 app/config/auth.php: model 指定模型table 指定用户表这里我只 ...

随机推荐

  1. (1)Java数据结构--图文并茂-分析优缺点

    转:常见Java数据结构&优缺点 - /画家/ - 博客园http://www.cnblogs.com/earl-yongchang/p/5639161.html 图片也是引用过来的,没有重新 ...

  2. 列举两种不同类型的Java标识注释,并解释它们之间的区别。

    列举两种不同类型的Java标识注释,并解释它们之间的区别.

  3. light oj 1011 - Marriage Ceremonies

    题目大意: 给出n*n的矩阵Map,Map[i][j]代表第i个男人和第j个女人之间的满意度,求男女一一配对后,最大的满意度之和. 题目思路:状态压缩 题目可看做每行取一点,所有点不同列的情况下,各个 ...

  4. tomcat线程一直处于RUNNABLE,不接受请求

    最近项目中一个模块出现一个问题,本人做的比较浅显,所以很简单的问题一直搞了好几天,通过各种查资料.工具终于分析除了问题.问题如下: 现在对tomcat一个工程(会通过httpurlconnection ...

  5. Python学习-环境搭建(IronPython)

    一.IDE环境 VS2013  下安装 PTVS 2.2.2 VS 2013 VS2015 已经集成了Python的开发环境 二.安装 IronPython 下载地址:http://ironpytho ...

  6. [Docker]CentOS7通过rpm包安装Docker

    前几天写过一篇文章:[Docker]CentOS7下Docker安装教程,直接使用yum命令下载Docker即可.但是前提是你需要***,所以这篇文章来讲讲,如果不会***,该如何安装Docker. ...

  7. libevent的入门学习-库的安装【转】

    转自:https://blog.csdn.net/lookintosky/article/details/61658067 libevent的入门学习-库的安装最近开始接触Linux应用层的东西,发现 ...

  8. python3+requests库框架设计01-自动化测试框架需要什么?

    什么是自动化测试框架 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 接口自动化测试框架核心无非是选择 一个用来编 ...

  9. 利用C#进行AUTOCAD的二次开发

    众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...

  10. unity提示can't add script解决办法

    1.脚本有误没有继承unity类. 2.类名文件名不一致. 3.内部逻辑代码有误.