Laravel 9 枚举条件 if
Laravel 9 enum conditional if
我创建了一个枚举,并添加了一个条件:
<?php
declare(strict_types=1);
namespace App\Enums;
use App\Models\collections;
enum ServiceColections : string {
case POS = (isset(collections::first()))? 'POS' : '';
}
如果数据库中有项目(table 集合),则条件如下,因此创建案例 POS,但如果它们不存在,则不创建。
目前我遇到这个错误:Enum case value must be compile-time evaluatable
为什么它不起作用?
正如错误本身所说,这在编译时不起作用。
我们能做的是,添加枚举方法:
use App\Models\collections;
enum ServiceColections
{
case POS;
public function collection(): string // name the function of your choice
{
return match($this)
{
self::POS => collections::first() ? 'POS' : '',
};
}
}
方法可以这样使用:
\App\Enums\ServiceColections::POS->collection();
我创建了一个枚举,并添加了一个条件:
<?php
declare(strict_types=1);
namespace App\Enums;
use App\Models\collections;
enum ServiceColections : string {
case POS = (isset(collections::first()))? 'POS' : '';
}
如果数据库中有项目(table 集合),则条件如下,因此创建案例 POS,但如果它们不存在,则不创建。
目前我遇到这个错误:Enum case value must be compile-time evaluatable
为什么它不起作用?
正如错误本身所说,这在编译时不起作用。
我们能做的是,添加枚举方法:
use App\Models\collections;
enum ServiceColections
{
case POS;
public function collection(): string // name the function of your choice
{
return match($this)
{
self::POS => collections::first() ? 'POS' : '',
};
}
}
方法可以这样使用:
\App\Enums\ServiceColections::POS->collection();