sbooker / enumerable-doctrine
Litgroup 可枚举 Doctrine 类型
1.2.2
2023-07-17 10:03 UTC
Requires
- php: ^7.3 || ^8.0
- doctrine/dbal: ^2.3 || ^3.0
- litgroup/enumerable: ^0.8
This package is auto-updated.
Last update: 2024-09-23 06:16:40 UTC
README
sbooker/enumerable-doctrine 包提供将 litgroup-enumerable 作为 Doctrine 字段类型使用的功能。
安装
推荐的安装方法是使用 Packagist 和 Composer。运行以下命令安装包并将其添加到项目的 composer.json
文件中:
composer require sbooker/enumerable-doctrine
示例
声明枚举和 Doctrine 类型
class ConcreteEnum extends \LitGroup\Enumerable\Enumerable { // See LitGroup/enumerable } class ConcreteEnumType extends \Sbooker\DoctrineEnumerableType\EnumerableType { protected function getEnumClass() : string { return ConcreteEnum::class; } public function getName() { return 'concrete_enum'; } }
配置
为了配置 Doctrine 使用 ramsey/uuid 作为字段类型,您需要在您的启动配置中设置以下内容:
\Doctrine\DBAL\Types\Type::addType('concrete_enum', ConcreteEnumType::class);
在 Symfony 中
doctrine: dbal: types: concrete_enum: ConcreteEnumType
用法
然后,在您的模型中,您可以通过将 @Column
类型设置为 concrete_enum
来注解属性。
use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="foo") */ class Foo { /** * @var ConcreteEnum * * @ORM\Column(type="concrete_enum") */ protected $enum; }
如果您使用的是 XML 映射而不是 PHP 注解。
<field name="enum" type="concrete_enum"/>
更多信息
有关 Doctrine 入门的更多信息,请参阅 "Doctrine 入门" 教程。
许可证
请参阅 LICENSE 文件。