User.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. /**
  6. * 会员模型
  7. */
  8. class User extends Model
  9. {
  10. use SoftDelete;
  11. // 开启自动写入时间戳字段
  12. protected $autoWriteTimestamp = 'int';
  13. // 定义时间戳字段名
  14. protected $createTime = 'createtime';
  15. protected $updateTime = 'updatetime';
  16. protected $deleteTime = 'deletetime';
  17. // 追加属性
  18. protected $append = [
  19. 'url',
  20. ];
  21. public static function init()
  22. {
  23. parent::init();
  24. }
  25. /**
  26. * 获取个人URL
  27. * @param string $value
  28. * @param array $data
  29. * @return string
  30. */
  31. public function getUrlAttr($value, $data)
  32. {
  33. return "/u/" . $data['id'];
  34. }
  35. /**
  36. * 关联上级用户
  37. */
  38. public function parent_user()
  39. {
  40. return $this->belongsTo('app\common\model\User', 'parent_user_id', 'id')
  41. ->field('id,nickname,avatar,mobile');
  42. }
  43. /**
  44. * 别名关联上级用户(支持驼峰命名)
  45. */
  46. public function parentUser()
  47. {
  48. return $this->parent_user();
  49. }
  50. // /**
  51. // * 获取头像
  52. // * @param string $value
  53. // * @param array $data
  54. // * @return string
  55. // */
  56. // public function getAvatarAttr($value, $data)
  57. // {
  58. // return $value ? $value : '/assets/img/avatar.png';
  59. // }
  60. /**
  61. * 获取验证字段数组值
  62. * @param string $value
  63. * @param array $data
  64. * @return object
  65. */
  66. public function getVerificationAttr($value, $data)
  67. {
  68. $value = array_filter((array)json_decode($value, true));
  69. $value = array_merge(['email' => 0, 'mobile' => 0], $value);
  70. return (object)$value;
  71. }
  72. /**
  73. * 设置验证字段
  74. * @param mixed $value
  75. * @return string
  76. */
  77. public function setVerificationAttr($value)
  78. {
  79. $value = is_object($value) || is_array($value) ? json_encode($value) : $value;
  80. return $value;
  81. }
  82. public function group()
  83. {
  84. return $this->belongsTo('app\\common\\model\\UserGroup', 'group_id', 'id', [], 'LEFT')->setEagerlyType(0);
  85. }
  86. }