当我想从数据库生成实体时,我有这个错误:
Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it
我该如何解决这个问题。
提前致谢
答案 0 :(得分:1)
您可以尝试在onBootstrap
的{{1}}模块中执行此类操作,告诉Doctrine将您的Module.php
视为字符串
enum
答案 1 :(得分:1)
将以下行添加到 bootstrap.php
$entityManager->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
答案 2 :(得分:0)
如果您真的想使用枚举并且不将它们转换为字符串,那么您应该实现自定义类型(这真的不是什么大问题)。 见enter link description here
但是,您必须扩展您平台上的类型列表。 所以,最简单的方法 - 用你自己的方法覆盖无用的方法\ Doctrine \ DBAL \ Types \ Type :: getMappedDatabaseTypes:
class EnumType extends Type
{
const NAME = "enum";
// ... (your implemented methods)
public function getMappedDatabaseTypes(AbstractPlatform $platform)
{
return ['enum'];
}
}
玩得开心:)