The library now uses native types whenever possible. When you override methods or implement interfaces, you will need to add them.
Instead of returning an empty string ''
on invalid values,
Enum::getDescription()
will throw an InvalidEnumMemberException
.
The constructor of InvalidEnumMemberException
now expects the class name
of an enum instead of an enum instance.
Laravel 9
or higher is required.
PHP 8.0
or higher is now required.
You should make sure that any enums using localization features are still translated as expected.
Laravel 8
or higher is required.
PHP 7.3
or higher is now required.
Laravel 7.5
or higher is required for the new native attribute casting.
PHP 7.2.5
or higher is now required.
You should update your models to use Laravel 7 native casting. Remove the trait and
move the casts from $enumCasts
to $casts
.
Trait based casting is still present, but is now deprecated and will be removed in the next major version.
--use BenSampo\Enum\Traits\CastsEnums;
class MyModel extends Model
{
- use CastsEnums;
- protected $enumCasts = [
+ protected $casts = [
'foo' => Foo::class,
];