php-arsenal / doctrine-odm-enum-type-bundle
此包已被放弃,不再维护。没有建议的替代包。
为您的文档添加自定义枚举映射类型。
0.1.1
2021-06-15 12:01 UTC
Requires
- php: >=8.0
- doctrine/mongodb-odm-bundle: ^4.3
- myclabs/php-enum: ^1.8
- symfony/dependency-injection: ^5.3
- symfony/http-kernel: ^5.3
README
在 Symfony 中为您的 MongoDB 文档添加自定义枚举映射类型。受 doctrine-enum-type 启发,基于 php-enum。
composer require php-arsenal/doctrine-odm-enum-type-bundle
它是如何工作的?
扩展 MyCLabs\Enum\Enum
的 Enum
类会自动添加为有效的 Doctrine 类型。
<?php namespace YourNamespace\Enum; use MyCLabs\Enum\Enum; final class ActionEnum extends Enum { private const CREATE = 'create'; private const READ = 'read'; private const UPDATE = 'update'; private const DELETE = 'delete'; }
您可以将类型设置为 Enum
类。在保存或从数据库检索时,它将被转换为 Enum
类。
<?php namespace YourNamespace\Entity; use YourNamespace\Enum\ActionEnum; use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM; /** * @ORM\Document() */ class User { /** * @ODM\Field(type=ActionEnum::class, name="action") */ protected $action; public function __construct() { $this->action = ActionEnum::CREATE(); } public function getAction(): ActionEnum { return $this->action; } public function setAction(ActionEnum $action): void { $this->action = $action; } }