Invite.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Models;
  3. use Auth;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. /**
  8. * 邀请码
  9. */
  10. class Invite extends Model
  11. {
  12. use SoftDeletes;
  13. protected $table = 'invite';
  14. protected $dates = ['dateline', 'deleted_at'];
  15. protected $fillable = ['invitee_id', 'status'];
  16. public function scopeUid($query)
  17. {
  18. return $query->whereInviterId(Auth::id());
  19. }
  20. public function inviter(): BelongsTo
  21. {
  22. return $this->belongsTo(User::class);
  23. }
  24. public function invitee(): BelongsTo
  25. {
  26. return $this->belongsTo(User::class);
  27. }
  28. public function getStatusLabelAttribute(): string
  29. {
  30. switch ($this->attributes['status']) {
  31. case 0:
  32. $status_label = '<span class="badge badge-success">' . trans(
  33. 'home.invite_code_table_status_un'
  34. ) . '</span>';
  35. break;
  36. case 1:
  37. $status_label = '<span class="badge badge-danger">' . trans(
  38. 'home.invite_code_table_status_yes'
  39. ) . '</span>';
  40. break;
  41. case 2:
  42. $status_label = '<span class="badge badge-default">' . trans(
  43. 'home.invite_code_table_status_expire'
  44. ) . '</span>';
  45. break;
  46. default:
  47. $status_label = '<span class="badge badge-default"> 未知 </span>';
  48. }
  49. return $status_label;
  50. }
  51. }