jungle-bay / doctrine-set-type
为 Doctrine 设置类型
1.0
2017-12-12 10:04 UTC
Requires
- php: >=5.5
- doctrine/dbal: ^2.5
Requires (Dev)
- phpunit/phpunit: ^4.8.36
This package is not auto-updated.
Last update: 2024-09-29 05:01:29 UTC
README
为 Doctrine 设置类型
安装
推荐的安装方法是使用 Composer
composer require jungle-bay/doctrine-set-type
使用示例
<?php namespace Acme\Types; use Doctrine\DBAL\Types\SetType; class RolesType extends SetType { const NAME = 'roles_type'; const ROLE_SUPER_USER_VALUE = 'ROLE_SUPER_USER'; const ROLE_ADMIN_VALUE = 'ROLE_ADMIN'; const ROLE_USER_VALUE = 'ROLE_USER'; const ROLE_NONE_VALUE = 'ROLE_NONE'; protected function getValue() { return array( self::ROLE_SUPER_USER_VALUE, self::ROLE_ADMIN_VALUE, self::ROLE_USER_VALUE, self::ROLE_NONE_VALUE ); } public function getName() { return self::NAME; } }
示例使用实体
<?php namespace Acme\Entities; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity() * * @ORM\Table( * name = "users" * ) */ class User { /** * @ORM\Column( * type = "roles_type" * ) */ private $roles; }
警告
不要忘记注册 类型!
\Doctrine\DBAL\Types\TypeType::addType(RolesType::NAME, RolesType::class); /** @var \Doctrine\DBAL\Connection $conn */ $conn->getDatabasePlatform()->registerDoctrineTypeMapping('roles', RolesType::NAME);