Symfony2 Doctrine CAST AS DECIMAL

时间:2015-05-12 14:05:51

标签: php symfony doctrine-orm doctrine sonata-admin

我在Symfony2中使用Sonata Admin Bundle并拥有自定义过滤器。在数据库中,列是float(不能更改它)。如果输入1333.33则没有结果。

一种解决方案是使用CAST:

CAST( o.price AS DECIMAL) = CAST( 399.99 AS DECIMAL)

查询在SQL中工作得很好,但是Doctrine会抛出错误。所以我的问题是如何在Doctrine或其他可靠的解决方案中使用CAST?

1 个答案:

答案 0 :(得分:0)

Doctrine 在其 DQL 中没有提供 CAST 结构(参见 this list)。

但是对于您的特殊情况,比较乘以 100 的值应该就足够了:

o.price * 100 = 399.99 * 100