kminek/laravel-enum
使用myclabs/php-enum作为Eloquent模型属性
v1.0.0
2021-09-15 16:14 UTC
Requires
- php: >=8.0.0
- illuminate/contracts: 8.*
- myclabs/php-enum: 1.*
Requires (Dev)
- friendsofphp/php-cs-fixer: 3.*
- illuminate/database: 8.*
- illuminate/events: 8.*
- phpunit/phpunit: 9.*
- symfony/var-dumper: 5.*
README
使用最流行的PHP枚举实现
myclabs/php-enum作为Eloquent模型属性。
安装
composer require kminek/laravel-enum
用法
而不是使用来自myclabs/php-enum
的基本枚举类
use \MyCLabs\Enum\Enum; class Brand extends Enum { public const TOYOTA = 'toyota'; public const BMW = 'bmw'; public const PEUGEOT = 'peugeot'; }
使用此包中的枚举类
use \Kminek\LaravelEnum\Enum; class Brand extends Enum { public const TOYOTA = 'toyota'; public const BMW = 'bmw'; public const PEUGEOT = 'peugeot'; }
设置模型属性以使用枚举类
class Car extends \Illuminate\Database\Eloquent\Model { protected $casts = [ 'brand' => Brand::class, ]; }
如果您想允许null
值
class Car extends \Illuminate\Database\Eloquent\Model { protected $casts = [ 'brand' => Brand::class.':nullable', ]; }
从现在起,您可以获取/设置枚举
// set $car = new Car(); $car->brand = new Brand(Brand::BMW); // or $car->brand = Brand::BMW; // get $brand = $car->brand; // $brand is enum instance
运行测试
composer test
代码规范修复工具
composer cs