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. RSA加解密

    RSA加密解密及数字签名Java实现 RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一 ...

  2. Python API简单验证

    前言 因为CMDB内部的需求,需要一个API进行数据传输,用来传递需要抓取的服务端信息信息给抓取的autoclient,autoclient抓取好之后再通过API传输到服务器,保存到数据库.但是为了防 ...

  3. 源码学习之mybatis

    1.先看看俩种调用方式 public static void main(String[] args) { SqlSessionFactory sqlSessionFactory; SqlSession ...

  4. 2017-2018-2 20165234 实验二 《Java面向对象程序设计》实验报告

    一.实验报告封面 课程:Java程序设计  班级:1652班  姓名:刘津甫  学号:20165234 指导教师:娄嘉鹏  实验日期:2018年4月13日 实验时间:15:35 - 17:15  实验 ...

  5. 编写Python脚本进行ARP欺骗

    1.系统环境:Ubuntu 16.04 Python版本:2.7 2.攻击机器:Ubuntu(192.16.0.14) 目标机器:Windows 7(192.168.0.9) 网关:(192.168. ...

  6. MyBatis-进阶1

    接入门的实例,我们知道MyBatis可以使用注解和配置文件实现接口和sql语句的绑定. 那么一个接口方法同时使用注解和xml配置会怎么样. @Select("select * from us ...

  7. 论文笔记:Joint Embeddings of Shapes and Images via CNN Image Purification

    今天分享的这篇论文是 SIGGRAPH 2015 的入选论文,标题比较长,但它做的事情其实很简单:通过一张图片,找到和这张图片最相似的 3D 形状

  8. 新年第一个目标一张表盘串讲所有canves的知识点

    我们的目标 首先是canves的坐标系统,基于浏览器的左上角为原点,x,y轴为正方向的坐标系统. 首先初始化,打标签 <canvas id="canvas" height=& ...

  9. Linux的notifier机制在TP中的应用【转】

    转自:https://blog.csdn.net/armfpga123/article/details/51771666 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  10. Delphi 的 FireDAC 连接管理与配置过程

    Delphi 的 FireDAC 连接管理与配置过程: 使用 FireDAC 技术连接 数据库,主要是使用  TFDConnection ,其中有一参数是选择  ConnectionDefFile. ...