AdminUserModel.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. *------------------------------------------------------
  4. * AdminUserModel.php
  5. *------------------------------------------------------
  6. *
  7. * @author m@9026.com
  8. * @date 2017/03/21 10:15
  9. * @version V1.0
  10. *
  11. */
  12. namespace App\Models;
  13. use Illuminate\Foundation\Auth\User as Authenticatable;
  14. use Illuminate\Http\Request;
  15. use Illuminate\Support\Facades\Auth;
  16. use Illuminate\Support\Facades\Validator;
  17. use Illuminate\Support\Str;
  18. class AdminUserModel extends Authenticatable
  19. {
  20. /**
  21. * 数据表名
  22. */
  23. protected $table = "admin_users";
  24. /**
  25. * 主键
  26. */
  27. protected $primaryKey = "id";
  28. protected $guarded = [];
  29. public function getValidator(Request $request, $type)
  30. {
  31. if ($type == 'store') {
  32. $validator = Validator::make($request->input('data'), [
  33. 'name' => 'required|unique:admin_users'
  34. ], [
  35. 'name.required' => '用户名必填',
  36. 'name.unique' => '用户名已存在'
  37. ]);
  38. } else if ($type == 'change-password') {
  39. $validator = Validator::make($request->input('data'), [
  40. 'old_password' => 'required',
  41. 'password' => 'required|min:6|confirmed'
  42. ], [
  43. 'old_password.required' => '请填写原来密码',
  44. 'password.required' => '密码必填,且不能少于6位',
  45. 'password.min' => '密码必填,且不能少于6位',
  46. 'password.confirmed' => '两次填写的密码不一致'
  47. ]);
  48. } else {
  49. $validator = Validator::make($request->input('data'), [
  50. 'name' => 'required'
  51. ], [
  52. 'name.required' => '账号必填'
  53. ]);
  54. $data = $request->input('data');
  55. $check = $this->where([
  56. ['id', '!=', $request->input('id')],
  57. ['name', '=', $data['name']]
  58. ])->first();
  59. $validator->after(function ($validator) use($check) {
  60. if ($check) {
  61. $validator->errors()->add('name', '用户名已存在');
  62. }
  63. });
  64. }
  65. return $validator;
  66. }
  67. public function adminRole()
  68. {
  69. return $this->belongsTo('App\Models\AdminRoleModel', 'admin_role_id');
  70. }
  71. public function updateToken()
  72. {
  73. $token = Str::random(60);
  74. $token = hash('sha256', $token);
  75. $this->update(['token' => $token]);
  76. }
  77. }