问题描述
我在我的项目中向 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 (将#修改为@)