Ticket.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Http\Models;
  3. use Auth;
  4. use Eloquent;
  5. use Illuminate\Database\Eloquent\Builder;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Support\Carbon;
  8. /**
  9. * 工单
  10. * Class Ticket
  11. *
  12. * @package App\Http\Models
  13. * @mixin Eloquent
  14. * @property int $id
  15. * @property int $user_id
  16. * @property string $title 标题
  17. * @property string $content 内容
  18. * @property int $status 状态:0-待处理、1-已处理未关闭、2-已关闭
  19. * @property Carbon|null $created_at 创建时间
  20. * @property Carbon|null $updated_at 最后更新时间
  21. * @property-read mixed $status_label
  22. * @property-read User $user
  23. * @method static Builder|Ticket newModelQuery()
  24. * @method static Builder|Ticket newQuery()
  25. * @method static Builder|Ticket query()
  26. * @method static Builder|Ticket uid()
  27. * @method static Builder|Ticket whereContent($value)
  28. * @method static Builder|Ticket whereCreatedAt($value)
  29. * @method static Builder|Ticket whereId($value)
  30. * @method static Builder|Ticket whereStatus($value)
  31. * @method static Builder|Ticket whereTitle($value)
  32. * @method static Builder|Ticket whereUpdatedAt($value)
  33. * @method static Builder|Ticket whereUserId($value)
  34. */
  35. class Ticket extends Model
  36. {
  37. protected $table = 'ticket';
  38. protected $primaryKey = 'id';
  39. function scopeUid($query)
  40. {
  41. return $query->whereUserId(Auth::user()->id);
  42. }
  43. function user()
  44. {
  45. return $this->hasOne(User::class, 'id', 'user_id');
  46. }
  47. function getStatusLabelAttribute()
  48. {
  49. switch($this->attributes['status']){
  50. case 0:
  51. $status_label = '<span class="badge badge-lg badge-success">'.trans('home.ticket_table_status_wait').'</span>';
  52. break;
  53. case 1:
  54. $status_label = '<span class="badge badge-lg badge-danger">'.trans('home.ticket_table_status_reply').'</span>';
  55. break;
  56. case 2:
  57. $status_label = '<span class="badge badge-lg badge-default">'.trans('home.ticket_table_status_close').'</span>';
  58. break;
  59. default:
  60. $status_label = '<span class="badge badge-lg badge-default"> 未知 </span>';
  61. }
  62. return $status_label;
  63. }
  64. }