繁体   English   中英

教义注释上的枚举类型问题

[英]Issue with enum type on doctrine's annotations

我使用原则实体的注释来生成和更新我的架构,但是枚举字段有问题

这是我的实体

我的用户类别:

<?php

namespace Schematify\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User 
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     * @var int
     */
    protected $id;

    /** @ORM\Column(length=250) */
    protected $email = '';

    /** @ORM\Column(length=32,options={"default":""}) */
    protected $pasword = '';

    /** @ORM\Column(type="string", columnDefinition="ENUM('visible', 'invisible')") */
    protected $status = '';


}

我开发了一个名为console.php的cli命令,以调用所有架构工具更新。 当我输入php console.php orm:schema-tool:update --force ,总是有1个查询要执行:

ALTER TABLE users CHANGE status status ENUM('visible', 'invisible');

我使用mysql数据库,所有代码都在这里提供: https : //github.com/talkspiritlab/schematify

谢谢

为了即使在架构/迁移工具中也对枚举提供适当的支持,您应该为每个枚举实现自定义类型,如官方文档中第二种解决方案所述

除此之外,别忘了将它们标记为需要注释

Type::addType($name, $class);
$platform->registerDoctrineTypeMapping($name, $name);
$platform->markDoctrineTypeCommented($name);

除非您使用的是包含此commit的非常新的DBAL版本,否则您无需标记为需要注释。 在撰写本文时,它将是主要的(或假设的未来v2.6)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM