我创建了一个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();