suleymanozev / enum-field
A Laravel Nova field.
This package's canonical repository appears to be gone and the package has been frozen as a result.
Installs: 27 192
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 2
Open Issues: 2
Requires
- php: >=8.1.0
- illuminate/database: ^9.0
- illuminate/http: ^9.0
- illuminate/support: ^9.0
- laravel/nova: ^3.0 | ^4.0
README
Nova field for enum in PHP 8.1 and above
Installation
You can install this package in a Laravel app that uses Nova via composer:
composer require suleymanozev/enum-field
Setup
use App\Enums\UserType; use Illuminate\Database\Eloquent\Model; class Example extends Model { protected $casts = [ 'user_type' => UserType::class, ]; }
Usage
You can use the Enum
field in your Nova resource like this:
namespace App\Nova; use App\Enums\UserType; use Suleymanozev\EnumField\Enum; class Example extends Resource { // ... public function fields(Request $request) { return [ // ... Enum::make('User Type')->attach(UserType::class), // ... ]; } }
Filters
If you would like to use the provided Nova Select filter (which is compatible with both the Enum
and FlaggedEnum
fields), you can include it like this:
namespace App\Nova; use App\Enums\UserPermissions; use App\Enums\UserType; use Suleymanozev\EnumField\EnumFilter; class Example extends Resource { // ... public function filters(Request $request) { return [ EnumFilter::make(__('User Type'), 'user_type', UserType::class), // With optional default value: EnumFilter::make(__('User Type'), 'user_type', UserType::class, UserType::Administrator), ]; } }
Alternatively, you may wish to use the provided Nova Boolean filter (which is also compatible with both the Enum
and FlaggedEnum
fields):
namespace App\Nova; use App\Enums\UserPermissions; use App\Enums\UserType; use Suleymanozev\EnumField\EnumBooleanFilter; class Example extends Resource { // ... public function filters(Request $request) { return [ EnumBooleanFilter::make(__('User Type'), 'user_type', UserType::class), // With optional default values: EnumBooleanFilter::make(__('User Type'), 'user_type', UserType::class, [ UserType::Administrator, UserType::Moderator, ]), ]; } }
Credits
Thanks
License
The MIT License (MIT). Please see License File for more information.