sbooker / enumerable-doctrine

Litgroup 可枚举 Doctrine 类型

1.2.2 2023-07-17 10:03 UTC

This package is auto-updated.

Last update: 2024-09-23 06:16:40 UTC


README

Latest Version Software License PHP Version Total Downloads

sbooker/enumerable-doctrine 包提供将 litgroup-enumerable 作为 Doctrine 字段类型使用的功能。

安装

推荐的安装方法是使用 PackagistComposer。运行以下命令安装包并将其添加到项目的 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 文件。