Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 1.45 KB

from.md

File metadata and controls

46 lines (33 loc) · 1.45 KB

From

The methods from and tryFrom do not exist on non-backed enums. When you have a non-backed enum where the string value is exactly the same as it's key, but you need from or tryFrom because of some library (like Laravel's validation), this might be useful.

Usage

use Henzeb\Enumhancer\Concerns\From;

enum yourEnum {
    use From;

    case MyEnum;
}

Examples

YourEnum::from('myenum'); // will return YourEnum::MyEnum;
YourEnum::from(0); // will return YourEnum::MyEnum;
YourEnum::from('MyEnum'); // will return YourEnum::MyEnum;
YourEnum::from('Callable'); // will throw error

YourEnum::from(YourEnum::MyEnum); // will return YourEnum::MyEnum;
YourEnum::from(YourOtherEnum::MyOtherEnum); // will throw error


YourEnum::tryFrom('myenum'); // will return YourEnum::MyEnum;
YourEnum::tryFrom('MyEnum'); // will return YourEnum::MyEnum;
YourEnum::tryFrom('DoesNotExist'); // will return null

YourEnum::tryFrom(YourEnum::MyEnum); // will return YourEnum::MyEnum;
YourEnum::tryFrom(YourOtherEnum::MyOtherEnum); // will return null;

Note: Under the hood it uses the Getters functionality, so you can use lower- and uppercase names, and you can also use Mappers that you have defined as described in Defaults.

Warning: Be aware that this feature will not work if you have a backed enum. Even when you use this trait, currently, the original methods take precedence. For those situations use Getters