AdminUser.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php namespace App\Http\Requests\Admin;
  2. use App\Http\Requests\BaseRequest;
  3. use Illuminate\Validation\Rule;
  4. /**
  5. * 管理验证器
  6. *
  7. */
  8. class AdminUser extends BaseRequest
  9. {
  10. /**
  11. * 获取应用于请求的规则
  12. *
  13. * @return array
  14. */
  15. public function rules()
  16. {
  17. // 编辑时排除ID
  18. $id = request('uid',null);
  19. // 非重规则
  20. $unique = Rule::unique('admin')->where(function ($query) {
  21. return $query->where(['username'=>request('username','')]);
  22. })->ignore($id,'uid');
  23. // 非重规则phone
  24. $uniphone = Rule::unique('admin')->where(function ($query){
  25. return $query->where(['phone'=>request('phone','')]);
  26. })->ignore($id,'uid');
  27. // 编辑时排除ID
  28. // 返回结果
  29. return [
  30. // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
  31. // 验证字段,验证规则,提示信息
  32. 'username' => ['required',$unique],
  33. 'phone' => ['required','regex:/^1[3456789][0-9]{9}$/',$uniphone],
  34. 'password' => 'required',
  35. 'uid' => 'required|integer|gt:0',
  36. 'groups' => 'required'
  37. ];
  38. }
  39. // 场景列表
  40. protected $scenes = [
  41. 'add' => ['username','phone','password','groups'],
  42. 'edit' => ['uid','username','phone'],
  43. 'del' => ['uid'],
  44. 'set_status' => ['uid'],
  45. ];
  46. /**
  47. * 获取已定义验证规则的错误消息
  48. *
  49. * @return array
  50. */
  51. public function messages()
  52. {
  53. return [
  54. 'username.required' => '用户名必填',
  55. 'username.unique' => '用户名已经存在',
  56. 'phone.required' => '手机号必填',
  57. 'phone.regex' => '手机号格式错误',
  58. 'phone.unique' => '手机号已经存在',
  59. 'password.required' => '密码必填',
  60. 'uid.required' => 'ID未知',
  61. 'uid.integer' => 'ID格式错误',
  62. 'uid.gt' => 'ID格式错误',
  63. 'groups.required' => '用户组必选'
  64. ];
  65. }
  66. }