如何解决Doctrine 自定义映射类型的默认值返回空字符串
我在我的项目中向 Doctrine 添加了 MysqL tinyint
类型。
但是在生成迁移时,我注意到默认值写为 DEFAULT ''
从我的实体注释中,我将默认值声明为 false
/**
* @ORM\Column(type="tinyint",options={"default"=false,"unsigned"=true})
*/
但由于某种原因,它被转换为空字符串。
同时,如果我将其设置为 0
,则迁移然后生成 DEFAULT '0'
是什么阻止了 Doctrine 将布尔值转换为整数?
我的自定义类型类是否缺少实现此目的的东西?
class tinyintType extends Type {
const tinyint='tinyint';
public function getName(): string {
return self::tinyint;
}
public function getsqlDeclaration(array $column,AbstractPlatform $platform): string {
$declaration="tinyint(1)";
if(array_key_exists('unsigned',$column) && $column['unsigned'] === true) {
$declaration.=" UNSIGNED";
}
$declaration.=" COMMENT '(DC2Type:tinyint)'";
return $declaration;
}
public function canRequiresqlConversion(): bool {
return false;
}
public function convertToPHPValue($value,AbstractPlatform $platform): ?int {
return $value === null ? null : (int)$value;
}
public function convertToDatabaseValue($value,AbstractPlatform $platform): ?int {
return $value === null ? null : (int)$value;
}
public function getBindingType(): int {
return ParameterType::INTEGER;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。