Laravel Enum - Class“App\Enums\IssueStatus”not found

t1qtbnec  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(187)

我试图在我的laravel项目中使用枚举,但我面临这个问题。它在我的模型中找不到类IssueStatus,我想在我的SQL中使用它。请问在Laravel中如何使用?

  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use App\Enums\IssueStatus;
  6. class Issue extends Model
  7. {
  8. use HasFactory;
  9. protected $table = 'issues';
  10. protected $fillable = [
  11. 'shop_id',
  12. 'title',
  13. 'description',
  14. 'status'
  15. ];
  16. /**
  17. * Get all issue without "resolved".
  18. *
  19. * @return \Illuminate\Database\Eloquent\Collection
  20. */
  21. public static function scopeNotResolved()
  22. {
  23. return self::join('shop', 'issues.shop_id', '=', 'shop.id')
  24. ->select('issues.*', 'shop.shop_name')
  25. ->where('issues.status', '!=', IssueStatus::RESOLVED)
  26. ->orderBy('issues.status', 'asc')->get();
  27. }
  28. }

我的enum类

  1. <?
  2. namespace App\Enums;
  3. /**
  4. * Enum class representing the issue status
  5. *
  6. * @package App\Enums
  7. */
  8. enum IssueStatus: int
  9. {
  10. case NEW = 0;
  11. case IN_PROGRESS = 1;
  12. case ON_HOLD = 2;
  13. case RESOLVED = 3;
  14. }

还有一条来自phpstan的消息

  1. Line Models/Issue.php
  2. ------ ------------------------------------------------------------------------
  3. 30 Access to constant RESOLVED on an unknown class App\Enums\IssueStatus.
  4. 💡 Learn more at https://phpstan.org/user-guide/discovering-symbols
  5. ------ ------------------------------------------------------------------------
vwoqyblh

vwoqyblh1#

嗯,经过测试...你得试试吸毒。
<?php而不是<?

  1. <?php
  2. namespace App\Enums;
  3. ....

这将解决您的问题

相关问题