我试图在我的laravel项目中使用枚举,但我面临这个问题。它在我的模型中找不到类IssueStatus,我想在我的SQL中使用它。请问在Laravel中如何使用?
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Enums\IssueStatus;
class Issue extends Model
{
use HasFactory;
protected $table = 'issues';
protected $fillable = [
'shop_id',
'title',
'description',
'status'
];
/**
* Get all issue without "resolved".
*
* @return \Illuminate\Database\Eloquent\Collection
*/
public static function scopeNotResolved()
{
return self::join('shop', 'issues.shop_id', '=', 'shop.id')
->select('issues.*', 'shop.shop_name')
->where('issues.status', '!=', IssueStatus::RESOLVED)
->orderBy('issues.status', 'asc')->get();
}
}
我的enum类
<?
namespace App\Enums;
/**
* Enum class representing the issue status
*
* @package App\Enums
*/
enum IssueStatus: int
{
case NEW = 0;
case IN_PROGRESS = 1;
case ON_HOLD = 2;
case RESOLVED = 3;
}
还有一条来自phpstan的消息
Line Models/Issue.php
------ ------------------------------------------------------------------------
30 Access to constant RESOLVED on an unknown class App\Enums\IssueStatus.
💡 Learn more at https://phpstan.org/user-guide/discovering-symbols
------ ------------------------------------------------------------------------
1条答案
按热度按时间vwoqyblh1#
嗯,经过测试...你得试试吸毒。
<?php
而不是<?
这将解决您的问题