Invite.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. use SoftDeletes;
  12. protected $table = 'invite';
  13. protected $dates = ['dateline', 'deleted_at'];
  14. protected $fillable = ['invitee_id', 'status'];
  15. public function scopeUid($query) {
  16. return $query->whereInviterId(Auth::id());
  17. }
  18. public function inviter(): BelongsTo {
  19. return $this->belongsTo(User::class);
  20. }
  21. public function invitee(): BelongsTo {
  22. return $this->belongsTo(User::class);
  23. }
  24. public function getStatusLabelAttribute(): string {
  25. switch($this->attributes['status']){
  26. case 0:
  27. $status_label = '<span class="badge badge-success">'.trans('home.invite_code_table_status_un').'</span>';
  28. break;
  29. case 1:
  30. $status_label = '<span class="badge badge-danger">'.trans('home.invite_code_table_status_yes').'</span>';
  31. break;
  32. case 2:
  33. $status_label = '<span class="badge badge-default">'.trans('home.invite_code_table_status_expire').'</span>';
  34. break;
  35. default:
  36. $status_label = '<span class="badge badge-default"> 未知 </span>';
  37. }
  38. return $status_label;
  39. }
  40. }