Laravel 9 enum条件必选if



我创建了一个enum,我添加了一个条件:

<?php
declare(strict_types=1);
namespace AppEnums;
use AppModelscollections;
enum ServiceColections : string {

case POS = (isset(collections::first()))? 'POS' : '';
}

如果数据库中有条目(表集合),则创建case POS,如果不存在则不创建。

目前我有这个错误:Enum case value must be compile-time evaluatable

为什么不工作?

正如错误本身所说,这将在编译时不起作用。

我们可以做的是,添加enum方法:

use AppModelscollections;
enum ServiceColections 
{
case POS;
public function collection(): string // name the function of your choice
{
return match($this) 
{
self::POS => collections::first() ? 'POS' : '',
};
}
}

方法可以这样使用:

AppEnumsServiceColections::POS->collection();

相关内容

  • 没有找到相关文章

最新更新