sakanjo/laravel-easy-enum
最新稳定版本:v1.0.4
Composer 安装命令:
composer require sakanjo/laravel-easy-enum
包简介
Easily work with enum.
README 文档
README
Easily work with enums.
✨ Help support the maintenance of this package by sponsoring me.
Designed to work with Laravel, Filament, and more.
Table of Contents
📦 Install
composer require sakanjo/laravel-easy-enum
🦄 Usage
1. Create enum
<?php namespace App\Enums; use SaKanjo\EasyEnum; enum ExampleEnum: int { use EasyEnum; case Active = 0; case NOPE = 1; }
2. Create lang file
// lang/en/enums.php <?php use App\Enums; return [ Enums\ExampleEnum::class => [ Enums\ExampleEnum::NOPE->name => 'Nope', // ... ], // ... ];
That's it!
📚 Methods
getLabel
Returns the label of the enum value.
Status::Active->getLabel(); // Active
translated
Returns the translated label of the enum value.
Status::Active->translated('tr'); // Aktif
is
Checks if the enum is equal to another one.
$enum1->is($enum2); // boolean
isNot
inverse of is.
$enum1->isNot($enum2); // boolean
in
Checks if the enum is in a list of enums.
$enum->in([$enum1, $enum2]); // boolean
notIn
inverse of in.
$enum->notIn([$enum1, $enum2]); // boolean
tryFromName
Safely converts a string to its corresponding enum value (returns null if not found).
Status::tryFromName('Active'); // Status::Active Status::tryFromName('Oops'); // null
Converts a string to its corresponding enum value (throws exception if not found).
fromName
Status::fromName('Active'); // Status::Active Status::fromName('Oops'); // Throws ValueError exception
names
Returns a list of case names.
Status::names(); // ['Active', 'NOPE']
values
Returns a list of case values .
Status::values(); // [0, 1]
options
Returns an associative array of case names and values.
Status::options(); // ['Active' => 0, 'NOPE' => 1] Status::options(true); // ['Active' => 0, 'Nope' => 1]
toHtml
alias for getLabel, useful in blade.
Status::Active->toHtml(); // Active
resolveDisplayableValue
same as toHtml except it doesn't render HTML.
Status::Active->resolveDisplayableValue(); // Active
🔥 Practical examples
Filamentphp
Enum
<?php namespace App\Enums; use Filament\Support\Contracts\HasLabel; use SaKanjo\EasyEnum; enum Status: int implements HasLabel { use EasyEnum; case Active = 0; case Disabled = 1; }
Resource
<?php use Filament\Forms; use App\Enums; Forms\Components\Select::make('status') ->options(Enums\Status::class);
Laravel blade
<?php namespace App\Enums; use Illuminate\Contracts\Support\DeferringDisplayableValue; use Illuminate\Contracts\Support\Htmlable; use SaKanjo\EasyEnum; enum Status: int implements Htmlable // or DeferringDisplayableValue { use EasyEnum; case Active = 0; case Disabled = 1; }
<div>
Current status: {{ auth()->user()->status }}
</div>
💖 Support the development
Do you like this project? Support it by donating
Click the "💖 Sponsor" at the top of this repo.
©️ Credits
📄 License
MIT License © 2023-PRESENT Salah Kanjo
统计信息
- 总下载量: 1.25k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-04-19
