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. [MVC框架]利用@Scheduled注解创建定时执行的程序

    新写的项目中有一个地方要用到定时器,然后就用了spring的@Scheduled注解,顺手就给记录下来了,免得下次用的时候还要翻以前的项目,顺便分享出来,给没用过的兄弟姐妹们做个参考. 这次主要用的是 ...

  2. C++ operator(重载操作符) 【转】

    转自:http://www.cnblogs.com/xiangxiaodong/archive/2012/02/12/2348144.html operator是C++的关键字,它和运算符一起使用,表 ...

  3. nc替代技术方案

    powershell $client = New-Object System.Net.Sockets.TCPClient('127.0.0.1',4444);$stream = $client.Get ...

  4. CentOS6.6 双网卡双网关配置

    1.需求: 内网IP:10.63.215.7 网关:10.63.215.254 外网IP:180.168.29.92 网关:180.168.29.89 内外网均可以Ping通,可直接访问 2.IP配置 ...

  5. 使用vmstat和iostat命令进行Linux性能监控【转】

    转自:https://linux.cn/article-4024-1.html 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系 ...

  6. python3+selenium入门15-执行JavaScript

    有时有些功能需要通过js来执行,比如拖动浏览器的滚动条.通过execute_script()方法可以执行js的代码 window.scrollTo()可以传两个参数,第一个参数是下方滚动条的位置,第二 ...

  7. Win10 开启移动热点 WiFi 的简单方法

    原文地址:https://blog.csdn.net/u012318074/article/details/77162475 Win 10 开启移动热点 WiFi 的方法很简单,并不需要像网上那样还要 ...

  8. 初探Linux内核中的内存管理

    Linux内核设计与实现之内存管理的读书笔记 初探Linux内核管理 内核本身不像用户空间那样奢侈的使用内存; 内核不支持简单快捷的内存分配机制, 用户空间支持? 这种简单快捷的内存分配机制是什么呢? ...

  9. Linux mem/swap/buffers/cached 区别

    Free free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free total used free shared buffers cached Mem: 255268 23833 ...

  10. form表单公用

    <?php /** * 后台总控制器 */ namespace app\common\controller; use think\Controller; use app\common\servi ...