【发布时间】:2021-12-27 19:00:35
【问题描述】:
Eloquent 允许Enum Casting。
Eloquent 还允许您将属性值转换为 PHP 枚举。 为此,您可以指定您希望的属性和枚举 投射到模型的 $casts 属性数组中:
use App\Enums\ServerStatus; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'status' => ServerStatus::class, ];在模型上定义演员表后,指定的属性 当您与之交互时,将自动转换为枚举 属性:
if ($server->status == ServerStatus::provisioned) { $server->status = ServerStatus::ready; $server->save(); }
是否可以在 eloquent 中对数组值使用枚举转换?
我有一个现有的雄辩模型,过去只有一种类型。现在它需要支持多个。
Laravel 是否支持数组枚举转换或者这不可能?实现类似目标的替代方法是什么?
【问题讨论】:
-
就像将数组的每个值转换为特定的枚举一样?
-
@Rwd 基本上是的。我想在一个类型属性上有多个值,并且很可能应该转换为数据库中枚举的逗号分隔列表。我觉得我必须自己实现。