MemberUser.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Relations\HasMany;
  4. use Illuminate\Database\Eloquent\SoftDeletes;
  5. use Illuminate\Foundation\Auth\User as Authenticatable;
  6. use Laravel\Sanctum\HasApiTokens;
  7. class MemberUser extends Authenticatable
  8. {
  9. use HasApiTokens, SoftDeletes;
  10. protected $guarded = [];
  11. /**
  12. * 隐藏字段
  13. *
  14. * @var array
  15. */
  16. protected $hidden = [
  17. 'password',
  18. ];
  19. /**
  20. * 创建用户时创建钱包
  21. *
  22. * @return void
  23. */
  24. protected static function booted()
  25. {
  26. static::created(function ($user) {
  27. $user->wallet()->create([
  28. 'owner_type' => MemberUser::class,
  29. 'owner_id' => $user->id,
  30. ]);
  31. });
  32. }
  33. /**
  34. * 获取用户的默认地址
  35. */
  36. public function address()
  37. {
  38. return $this->hasOne(MemberAddress::class, 'user_id', 'id')->where('is_default', 1);
  39. }
  40. /**
  41. * 获取用户的所有地址
  42. */
  43. public function addresses(): HasMany
  44. {
  45. return $this->hasMany(MemberAddress::class, 'user_id', 'id');
  46. }
  47. /**
  48. * 获取用户的所有订单
  49. */
  50. public function orders(): HasMany
  51. {
  52. return $this->hasMany(Order::class, 'user_id', 'id');
  53. }
  54. }