PHPackages                             yesccx/laravel-enum - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. yesccx/laravel-enum

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

yesccx/laravel-enum
===================

laravel enum

v1.1.8(2y ago)17.1kMITPHPPHP ^8.1.0

Since Apr 9Pushed 2y ago1 watchersCompare

[ Source](https://github.com/yesccx/laravel-enum)[ Packagist](https://packagist.org/packages/yesccx/laravel-enum)[ Docs](https://github.com/yesccx/laravel-enum)[ RSS](/packages/yesccx-laravel-enum/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelog (1)Dependencies (5)Versions (12)Used By (0)

Laravel-Enum
============

[](#laravel-enum)

简单易用的枚举类实现，通过枚举类统一管理枚举值

[![For Laravel 5](https://camo.githubusercontent.com/6f68f16ce18e7468ec2bf463ae6b902dc2e186030d484981174dcb8e7981a5f1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d392e2a2d677265656e2e737667)](https://github.com/yesccx/laravel-enum)[![Latest Stable Version](https://camo.githubusercontent.com/d284b1bf6926061a514f3b71a94939cd95d49a3ccaaad356b979221793afc2a7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7965736363782f6c61726176656c2d656e756d2e737667)](https://packagist.org/packages/yesccx/laravel-enum)[![Latest Unstable Version](https://camo.githubusercontent.com/6de473592598778faca42e5678e5628b344f290f3c18a9185d700b0e38e70863/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f767072652f7965736363782f6c61726176656c2d656e756d2e737667)](https://packagist.org/packages/yesccx/laravel-enum)[![Total Downloads](https://camo.githubusercontent.com/7d63e9a45ae143bcd2dd2b93034265cba4aff88c4b9856a0e462e05b4161432c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7965736363782f6c61726176656c2d656e756d2e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/yesccx/laravel-enum)[![License](https://camo.githubusercontent.com/a3389554b9e411cd033eb8e9bef98c963ccd2616eb3a343fa248ecd29d96fdb9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7965736363782f6c61726176656c2d656e756d2e7376673f6d61784167653d32353932303030)](https://packagist.org/packages/yesccx/laravel-enum)

目录
--

[](#目录)

- [目录](#%E7%9B%AE%E5%BD%95)
- [功能特点](#%E5%8A%9F%E8%83%BD%E7%89%B9%E7%82%B9)
- [安装](#%E5%AE%89%E8%A3%85)
    - [运行环境](#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83)
- [开始使用](#%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8)
    - [定义枚举类](#%E5%AE%9A%E4%B9%89%E6%9E%9A%E4%B8%BE%E7%B1%BB)
    - [使用枚举类](#%E4%BD%BF%E7%94%A8%E6%9E%9A%E4%B8%BE%E7%B1%BB)
        - [利用枚举类进行值判断](#%E5%88%A9%E7%94%A8%E6%9E%9A%E4%B8%BE%E7%B1%BB%E8%BF%9B%E8%A1%8C%E5%80%BC%E5%88%A4%E6%96%AD)
        - [判断值是否合法](#%E5%88%A4%E6%96%AD%E5%80%BC%E6%98%AF%E5%90%A6%E5%90%88%E6%B3%95)
        - [使用验证规则判断值是否合法](#%E4%BD%BF%E7%94%A8%E9%AA%8C%E8%AF%81%E8%A7%84%E5%88%99%E5%88%A4%E6%96%AD%E5%80%BC%E6%98%AF%E5%90%A6%E5%90%88%E6%B3%95)
        - [获取枚举值的含义说明](#%E8%8E%B7%E5%8F%96%E6%9E%9A%E4%B8%BE%E5%80%BC%E7%9A%84%E5%90%AB%E4%B9%89%E8%AF%B4%E6%98%8E)
        - [使用模型访问器定义字段含义说明](#%E4%BD%BF%E7%94%A8%E6%A8%A1%E5%9E%8B%E8%AE%BF%E9%97%AE%E5%99%A8%E5%AE%9A%E4%B9%89%E5%AD%97%E6%AE%B5%E5%90%AB%E4%B9%89%E8%AF%B4%E6%98%8E)
        - [获取某个字段的枚举值范围](#%E8%8E%B7%E5%8F%96%E6%9F%90%E4%B8%AA%E5%AD%97%E6%AE%B5%E7%9A%84%E6%9E%9A%E4%B8%BE%E5%80%BC%E8%8C%83%E5%9B%B4)
        - [获取某个字段的键值映射](#%E8%8E%B7%E5%8F%96%E6%9F%90%E4%B8%AA%E5%AD%97%E6%AE%B5%E7%9A%84%E9%94%AE%E5%80%BC%E6%98%A0%E5%B0%84)
    - [进阶用法](#%E8%BF%9B%E9%98%B6%E7%94%A8%E6%B3%95)
        - [枚举集合类](#%E6%9E%9A%E4%B8%BE%E9%9B%86%E5%90%88%E7%B1%BB)
        - [自定义枚举类含义及映射](#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%9A%E4%B8%BE%E7%B1%BB%E5%90%AB%E4%B9%89%E5%8F%8A%E6%98%A0%E5%B0%84)
        - [复用枚举值](#%E5%A4%8D%E7%94%A8%E6%9E%9A%E4%B8%BE%E5%80%BC)
- [API](#api)
    - [配置项](#%E9%85%8D%E7%BD%AE%E9%A1%B9)
        - [enum\_root\_path](#enum_root_path)
        - [cache\_filename](#cache_filename)
    - [枚举类方法](#%E6%9E%9A%E4%B8%BE%E7%B1%BB%E6%96%B9%E6%B3%95)
        - [translate(mixed $value, mixed $default = null): mixed](#translatemixed-value-mixed-default--null-mixed)
        - [public function has(mixed $value): bool](#public-function-hasmixed-value-bool)
        - [public function map(): array](#public-function-map-array)
        - [public function valueMap(): array](#public-function-valuemap-array)
        - [public function keys(): array](#public-function-keys-array)
        - [public function values(): array](#public-function-values-array)
        - [public function useColumn(string $column): static](#public-function-usecolumnstring-column-static)
        - [public function by(string $column): static](#public-function-bystring-column-static)
    - [命令行](#%E5%91%BD%E4%BB%A4%E8%A1%8C)
        - [enum:cache](#enumcache)
        - [enum:clear](#enumclear)
- [使用建议](#%E4%BD%BF%E7%94%A8%E5%BB%BA%E8%AE%AE)
- [License](#license)

功能特点
----

[](#功能特点)

- 支持 `Laravel 9+`
- 统一管理表或对象的可枚举字段，在任意处利用枚举类对值进行合法性校验
- 利用枚举类进行表单验证规则
- 利用预定义的映射关系，解析出枚举值对应的含义说明
- 使用 `PHP8.1` 的注解功能快速定义枚举类

安装
--

[](#安装)

### 运行环境

[](#运行环境)

运行环境要求PHP ^8.1.0Laravel Framework ^9.0```
> composer require yesccx/laravel-enum:1.x

# 如果没有自定义配置项的需求，可以不进行初始化配置文件, 配置项内容参考末尾的API部分
> php artisan vendor:publish --tag=enum-config
```

开始使用
----

[](#开始使用)

### 定义枚举类

[](#定义枚举类)

通过继承枚举基类 `Yesccx\Enum\BaseEnum` 定义枚举类，利用类的成员常量来定义枚举值，并使用 `Yesccx\Enum\Supports\Message` 注解来说明枚举值的含义，`Message` 注解的作用是为了收集并管理枚举值，为后续的枚举类相关操作提供基础数据。

```
