doctrineum/integer

Doctrine 的枚举类型 - 仅整数

4.0.0 2019-02-13 09:10 UTC

This package is auto-updated.

Last update: 2024-09-15 00:47:47 UTC


README

Build Status Test Coverage License

关于

枚举 添加到 Doctrine ORM 中(可以用作 @Column(type="integer_enum"))。

##使用方法

<?php

use Doctrine\ORM\Mapping as ORM;
use Doctrineum\Integer\IntegerEnum;

/**
 * @ORM\Entity()
 */
class Journey
{
    /**
     * @var int
     * @ORM\Id() @ORM\GeneratedValue(strategy="AUTO") @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @var IntegerEnum
     * @ORM\Column(type="integer_enum")
     */
    private $distanceInKm;
    
    public function __construct(IntegerEnum $distanceInKm)
    {
        $this->distanceInKm = $distanceInKm;
    }

    /**
     * @return IntegerEnum
     */
    public function getDistanceInKm()
    {
        return $this->distanceInKm;
    }
}

$toSun = new Journey(IntegerEnum::getEnum(152100000));

/** @var \Doctrine\ORM\EntityManager $entityManager */
$entityManager->persist($toSun);
$entityManager->flush();
$entityManager->clear();

/** @var Journey[] $StarTracks */
$StarTracks = $entityManager->createQuery(
    "SELECT j FROM Journey j WHERE j.distanceInKm >= 1000000"
)->getResult();

var_dump($StarTracks[0]->getDistanceInKm()->getValue()); // 152100000;

##安装

将其添加到您的 Composer 依赖项列表中(或者手动编辑 composer.json 中的 require 部分)

composer require jaroslavtyc/doctrineum-integer

Doctrine 集成

注册新的 DBAL 类型

<?php

use Doctrineum\Integer\IntegerEnumType;

IntegerEnumType::registerSelf();

当使用 Symfony 与 Doctrine 时,您可以通过配置来完成与上述相同的操作

# app/config/config.yml

# Doctrine Configuration
doctrine:
    dbal:
        # ...
        mapping_types:
            integer_enum: integer_enum
        types:
            integer_enum: Doctrineum\Integer\IntegerEnumType