aguila / enum-field-aguila
一个Laravel Nova字段。
v1.0.0
2024-03-20 11:41 UTC
Requires
- php: >=8.1.0
- illuminate/database: ^9.0
- illuminate/http: ^9.0
- illuminate/support: ^9.0
- laravel/nova: ^3.0 | ^4.0
This package is not auto-updated.
Last update: 2024-09-19 14:38:46 UTC
README
PHP 8.1及以上版本的Nova枚举字段
安装
您可以通过composer在使用Nova的Laravel应用中安装此包
composer require Aguila/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 Aguila\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 Aguila\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 Aguila\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)。请参阅许可证文件获取更多信息。