hmayer / enum-field
Laravel Nova 字段,用于 PHP 枚举类。
v1.0.1
2023-05-05 14:49 UTC
Requires
- php: >=8.1.0
- laravel/nova: ^4.0
This package is auto-updated.
Last update: 2024-09-05 17:57:51 UTC
README
PHP 8.1 及以上版本中枚举字段的 Nova 字段。
我试图保持与 suleymanozev/enum-field 相同的接口,但增加了一些满足个人需求的功能。
安装
您可以通过 composer 在使用 Nova 的 Laravel 应用中安装此包
composer require hmayer/enum-field
设置
use App\Enums\UserType; use Illuminate\Database\Eloquent\Model; class Example extends Model { protected $casts = [ 'user_type' => UserType::class, ]; }
用法
您可以在 Nova 资源中使用 Enum 字段,如下所示
namespace App\Nova; use App\Enums\UserType; use Hmayer\EnumField\Enum; class Example extends Resource { // ... public function fields(Request $request) { return [ // ... Enum::make('User Type')->attach(UserType::class), // ... ]; } }
过滤器
如果您想使用提供的 Nova Select 过滤器(与 Enum 和 FlaggedEnum 字段兼容),可以这样包含它
namespace App\Nova; use App\Enums\UserPermissions; use App\Enums\UserType; use Hmayer\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), ]; } }
或者,您可能希望使用提供的 Nova 布尔过滤器(也与 Enum 和 FlaggedEnum 字段兼容)
namespace App\Nova; use App\Enums\UserPermissions; use App\Enums\UserType; use Hmayer\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, ]), ]; } }
致谢
感谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件