Laravel将十进制视为字符串

时间:2017-07-14 08:19:15

标签: laravel eloquent

我试图进行下一个雄辩的查询

$result = $result->where('money','>=',(float)$moneyFilter);

我的数据库中的money列是DECIMAL(11,2),当我运行查询时它返回一个空数组,当我查看php artisan tinker并查看列钱时,它是一个字符串值&# 34; 11.1&#34 ;.

我想过滤$ result集合,使其值超过$ moneyFilter。

由于

1 个答案:

答案 0 :(得分:1)

您需要在模型中定义需要将哪些字段强制转换为基本属性。

  protected $casts = ['my_decimal' => 'float'];

这里有一个很好的解释:

https://mattstauffer.com/blog/laravel-5.0-eloquent-attribute-casting/

文档中也有解释:

https://laravel.com/docs/5.5/eloquent-mutators#attribute-casting