User.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Models;
  3. use Illuminate\Notifications\Notifiable;
  4. use Illuminate\Foundation\Auth\User as Authenticatable;
  5. /**
  6. * 用户信息
  7. * Class User
  8. *
  9. * @package App\Http\Models
  10. * @property mixed $balance
  11. * @property-read \Illuminate\Database\Eloquent\Collection|\App\Http\Models\UserLabel[] $label
  12. * @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
  13. * @property-read \App\Http\Models\Package $package
  14. * @property-read \Illuminate\Database\Eloquent\Collection|\App\Http\Models\Payment[] $payment
  15. * @property-read \Illuminate\Database\Eloquent\Collection|\Spatie\Permission\Models\Permission[] $permissions
  16. * @property-read \App\Http\Models\User $referral
  17. * @property-read \Illuminate\Database\Eloquent\Collection|\Spatie\Permission\Models\Role[] $roles
  18. * @method static \Illuminate\Database\Eloquent\Builder|\App\Http\Models\User permission($permissions)
  19. * @method static \Illuminate\Database\Eloquent\Builder|\App\Http\Models\User role($roles)
  20. * @mixin \Eloquent
  21. */
  22. class User extends Authenticatable
  23. {
  24. use Notifiable;
  25. protected $table = 'user';
  26. protected $primaryKey = 'id';
  27. function payment()
  28. {
  29. return $this->hasMany(Payment::class, 'user_id', 'id');
  30. }
  31. function label()
  32. {
  33. return $this->hasMany(UserLabel::class, 'user_id', 'id');
  34. }
  35. function referral()
  36. {
  37. return $this->hasOne(User::class, 'id', 'referral_uid');
  38. }
  39. function getBalanceAttribute($value)
  40. {
  41. return $value / 100;
  42. }
  43. function setBalanceAttribute($value)
  44. {
  45. return $this->attributes['balance'] = $value * 100;
  46. }
  47. }