Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Enumhancer Laravel Package

henzeb/enumhancer

View on GitHub
Deep Wiki
Context7

Blade

Currently, in blade enums aren't casted to strings. Due to limitations, you can't automate this by just adding UnitEnum/BackedEnum as stringables. Using this feature allows you easy registering of your enums for use in blade.

Example

use Henzeb\Enumhancer\Concerns\Value;

enum MyUnitEnum {
    use Value;

    case Enum;
}

enum MyStringEnum: string {
    case Enum = 'My Enum';
}

enum MyIntEnum: int {
    case Enum = 0;
}

In your Service Provider:

use Henzeb\Enumhancer\Helpers\EnumBlade;

EnumBlade::register(MyUnitEnum::class, MyStringEnum::class, MyIntEnum::class);

/** When you want the value to be lower case */
EnumBlade::registerLowercase(MyUnitEnum::class, MyStringEnum::class, MyIntEnum::class);

In your blade file:

/** With register */
{{$unitEnum}} // Enum
{{$unitEnum->name}} // Enum
{{$unitEnum->value}} // throws error
{{$unitEnum->value()}} // enum
{{$unitEnum instanceof \UnitEnum}} // 1
{{$unitEnum instanceof \BackedEnum}} // 0

{{$stringEnum}} // My Enum
{{$stringEnum->name}} // Enum
{{$stringEnum->value}} // My Enum
{{$stringEnum instanceof \UnitEnum}} // 0
{{$stringEnum instanceof \BackedEnum}} // 1

{{$intEnum}} // 0
{{$intEnum->name}} // Enum
{{$intEnum->value}} // 0
{{$intEnum instanceof \UnitEnum}} // 0
{{$intEnum instanceof \BackedEnum}} // 1

/** With registerLowercase */
{{$unitEnum}} // enum
{{$unitEnum->name}} // Enum
{{$unitEnum->value}} // throws error
{{$unitEnum->value()}} // enum
{{$unitEnum instanceof \UnitEnum}} // 1
{{$unitEnum instanceof \BackedEnum}} // 0

{{$stringEnum}} // My Enum
{{$stringEnum->name}} // Enum
{{$stringEnum->value}} // My Enum
{{$stringEnum instanceof \UnitEnum}} // 0
{{$stringEnum instanceof \BackedEnum}} // 1

{{$intEnum}} // 0
{{$intEnum->name}} // Enum
{{$intEnum->value}} // 0
{{$intEnum instanceof \UnitEnum}} // 0
{{$intEnum instanceof \BackedEnum}} // 1
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator