doctrineum/boolean

Doctrine 的枚举类型 - 仅布尔值

2.2.0 2019-03-01 10:55 UTC

This package is auto-updated.

Last update: 2024-08-29 04:42:50 UTC


README

Build Status Test Coverage License

关于

枚举 添加到 Doctrine ORM(可作为 @Column(type="boolean_enum") 使用)。

##用法

<?php

use Doctrine\ORM\Mapping as ORM;
use Doctrineum\Boolean\BooleanEnum;

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

    /**
     * @var BooleanEnum
     * @ORM\Column(type="boolean_enum")
     */
    private $activated;
    
    public function __construct()
    {
        $this->activated = BooleanEnum::getEnum(false);
    }

    /**
     * @return BooleanEnum
     */
    public function getActivated()
    {
        return $this->activated;
    }

    /**
     * @param BooleanEnum $activated
     */
    public function setActivated(BooleanEnum $activated)
    {
        $this->activated = $activated;
    }
}

$account = new Account();
$account->setActivated(BooleanEnum::getEnum(true));

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

/** @var Account[] $accounts */
$accounts = $entityManager->createQuery(
    "SELECT a FROM Account a WHERE a.activated"
)->getResult();

var_dump($accounts[0]->getActivated()->getValue()); // true;

##安装

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

composer require jaroslavtyc/doctrineum-boolean

注意:NULL 是不允许的。NULL 表示“我不知道”,这既不是 FALSE 也不是 TRUE。如果您想将 NULL 用作 FALSE,那么您需要自行进行转换,因为您是唯一“知道”的人。

Doctrine 集成

注册新的 DBAL 类型

<?php

use Doctrineum\Boolean\BooleanEnumType;

BooleanEnumType::registerSelf();

当使用 Symfony 与 Doctrine 时,您可以通过配置执行与上面相同的操作。

# app/config/config.yml

# Doctrine Configuration
doctrine:
    dbal:
        # ...
        mapping_types:
            boolean_enum: boolean_enum
        types:
            boolean_enum: Doctrineum\Boolean\BooleanEnumType