suleymanozev/enum-field

此包已弃用,不再维护。未建议替代包。

Laravel Nova 字段。

此包的官方仓库似乎已不存在,因此该包已被冻结。

v1.0.7 2022-06-21 16:32 UTC

This package is auto-updated.

Last update: 2024-01-23 15:32:47 UTC


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

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

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