1

我正在尝试遵循 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()

4

1 回答 1

1

$value你得到的是要么stringnull。你不能调用toDecimal它。尝试:

public function convertToDatabaseValue($value, AbstractPlatform $platform) {
    return $value === null ? null : (float) $value;
} 
于 2013-03-20T13:05:58.063 回答