HasStateText.php 619 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Traits;
  3. /**
  4. * 状态文本转换 Trait
  5. */
  6. trait HasStateText
  7. {
  8. /**
  9. * 获取状态文本
  10. */
  11. public function getStateTextAttribute(): string
  12. {
  13. if (! isset($this->stateEnumClass)) {
  14. return '未知状态';
  15. }
  16. $enumClass = $this->stateEnumClass;
  17. return $enumClass::fromValue($this->state)?->label() ?? '未知状态';
  18. }
  19. /**
  20. * 初始化 HasStateText trait
  21. */
  22. public function initializeHasStateText(): void
  23. {
  24. // 自动添加 state_text 到 appends 数组
  25. $this->append('state_text');
  26. }
  27. }