Doctrine ODM-浮点型字段不适用于十进制字段

问题描述 投票:0回答:1

我有一个文档,其字段配置设置为

/** @ODM\Field(type="float") */
public $stock_price;

并且在我的mongodb上,该字段具有十进制验证

  stock_price: {
    bsonType: 'decimal',
    description: 'must be a decimal and is required'
  },

[当我尝试存储值时,它返回document validation failedcannot convert decimal to float

$odm = new stock();
$odm->stock_price = 10.99;
$dm->persist($odm);
$dm->flush();

返回document validation failed

如果我尝试转换为mongo十进制,插入也会失败。

$odm = new stock();
$odm->stock_price = new Decimal128("10.99");
$dm->persist($odm);
$dm->flush();

返回cannot convert decimal to float

mongodb php-7.2 doctrine-odm zend-expressive
1个回答
0
投票

mongodb-odm尚不支持十进制(2019年10月12日)v2.0.1。您可以派生项目并自己添加类型,还可以发出拉取请求。

Supported Types

我将复制浮点类型,创建一个十进制类型,更改其获取和写入逻辑以处理Decimal128,最后更新Type.php以包括新的DecimalType。

PHP - MongoDB\BSON\Decimal128

© www.soinside.com 2019 - 2024. All rights reserved.