bjerke/laravel-enums

处理 Laravel 中枚举和枚举翻译的辅助函数

v2.1.0 2023-04-29 16:46 UTC

This package is auto-updated.

Last update: 2024-08-29 19:54:32 UTC


README

此包提供了一个特性,其中包含枚举管理和翻译的辅助方法。

重要:从版本 2 开始,此包已重新构建以使用原生 PHP 枚举而不是类常量。因此,现在需要 PHP 8.1。有关详细信息,请参阅 UPGRADE.md

要求

  • PHP 8.1 或更高版本
  • 只能与 支持枚举 一起使用

安装

composer require bjerke/laravel-enums

用法

namespace App\Enums;

use Bjerke\Enum\HasTranslations;
use Bjerke\Enum\UsesTranslations;

enum PostStatus: int implements HasTranslations {
    use UsesTranslations;

    case DRAFT = 10;
    case PUBLISHED = 20;
    case ARCHIVED = 30;
}

这将允许您在 Laravel 的翻译文件 enums.php 中定义这些值的翻译版本

// ../resources/lang/en/enum.php

use App\Enums\MyEnum;

return [
    'post_status' => [
        PostStatus::DRAFT->value => 'Draft',
        PostStatus::PUBLISHED->value => 'Published'
        PostStatus::ARCHIVED->value => 'Archived'
    ]
];

然后您就可以这样检索翻译值

PostStatus::DRAFT->translate(); // return translation for this case
PostStatus::getTranslations(); // return all translations

还有一个用于检索案例的辅助方法

PostStatus::getCasesAsArray() - 返回 "枚举键" => "枚举值" 的数组