suleymanozev / enum-field
此包已弃用,不再维护。未建议替代包。
Laravel Nova 字段。
此包的官方仓库似乎已不存在,因此该包已被冻结。
v1.0.7
2022-06-21 16:32 UTC
Requires
- php: >=8.1.0
- illuminate/database: ^9.0
- illuminate/http: ^9.0
- illuminate/support: ^9.0
- laravel/nova: ^3.0 | ^4.0
README
PHP 8.1及以上版本的Nova枚举字段
安装
您可以通过composer在使用Nova的Laravel应用中安装此包
composer require suleymanozev/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 Suleymanozev\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 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), ]; } }
或者,您可能希望使用提供的Nova布尔过滤器(也与Enum
和FlaggedEnum
字段兼容)
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, ]), ]; } }
致谢
感谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。