Ticket.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Models;
  3. use Auth;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. /**
  7. * 工单.
  8. */
  9. class Ticket extends Model
  10. {
  11. protected $table = 'ticket';
  12. public function scopeUid($query)
  13. {
  14. return $query->whereUserId(Auth::id());
  15. }
  16. public function user(): BelongsTo
  17. {
  18. return $this->belongsTo(User::class);
  19. }
  20. public function admin(): BelongsTo
  21. {
  22. return $this->BelongsTo(User::class);
  23. }
  24. public function close(): bool
  25. {
  26. $this->status = 2;
  27. return $this->save();
  28. }
  29. public function getStatusLabelAttribute(): string
  30. {
  31. switch ($this->attributes['status']) {
  32. case 0:
  33. $status_label = '<span class="badge badge-lg badge-success">'.trans('home.ticket_table_status_wait').'</span>';
  34. break;
  35. case 1:
  36. $status_label = '<span class="badge badge-lg badge-danger">'.trans('home.ticket_table_status_reply').'</span>';
  37. break;
  38. case 2:
  39. $status_label = '<span class="badge badge-lg badge-default">'.trans('home.ticket_table_status_close').'</span>';
  40. break;
  41. default:
  42. $status_label = '<span class="badge badge-lg badge-default"> 未知 </span>';
  43. }
  44. return $status_label;
  45. }
  46. }