我试图效仿这个例子 http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html 并创建自定义数量类型。当数量类型定义为:
时,一切正常class Quantity extends Type
{
const QUANTITY = 'quantity'; // modify to match your type name
public function getSqlDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
return 'decimal(10,2)';
}
public function getName()
{
return self::QUANTITY;
}
}
但是在介绍时
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
return $value->toDecimal();
}
保存时出现以下错误:
FatalErrorException:错误:在... \ Types \ Quantity.php第26行中的非对象上调用成员函数toDecimal()
答案 0 :(得分:1)
您获得的$value
是string
或null
。您无法在其上拨打toDecimal
。尝试:
public function convertToDatabaseValue($value, AbstractPlatform $platform) {
return $value === null ? null : (float) $value;
}