doctrineum / boolean
Doctrine 的枚举类型 - 仅布尔值
2.2.0
2019-03-01 10:55 UTC
Requires
- php: >=7.1
- doctrineum/scalar: ^3.1
- granam/boolean: ^3.1
- granam/boolean-enum: ^1.0
- granam/strict-object: ^3.0
Requires (Dev)
- granam/exceptions-hierarchy: ~4.0
- mockery/mockery: ~1.0
- phpunit/phpunit: ~7.0
- roave/security-advisories: dev-master
README
关于
将 枚举 添加到 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