aguila/enum-field-aguila

v1.0.0 2024-03-20 11:41 UTC

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过滤器(与EnumFlaggedEnum字段兼容),可以这样包含

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布尔过滤器(也与EnumFlaggedEnum字段兼容)

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)。请参阅许可证文件获取更多信息。