Doctrine 2自定义类型

时间:2013-03-20 09:41:18

标签: symfony types doctrine-orm

我试图效仿这个例子 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()

1 个答案:

答案 0 :(得分:1)

您获得的$valuestringnull。您无法在其上拨打toDecimal。尝试:

public function convertToDatabaseValue($value, AbstractPlatform $platform) {
    return $value === null ? null : (float) $value;
}