Cast Fluent Aggregate Query Result在Laravel中键入

时间:2015-04-07 13:50:33

标签: php mysql laravel laravel-4

在Laravel 4.2中,我有这样的查询:

$query = DB::table('myTable')
->select('name', DB::raw('SUM(var) as sumofvar')
->get();

dd($query);

// returns:
//
// array(
//   "name1" => ".66",
//   "name2  => "1.32", //etc
// )

这样运行正常,但结果中的sumofvar以字符串而不是float / decimal的形式返回。该列是MySQL中的小数。

目前,我必须array_map或类似地将每个值转换为数字。有没有办法让Fluent从聚合函数中获得数值结果?

1 个答案:

答案 0 :(得分:2)

使用PHP从MySQL数据库中选择数据时,数据类型将始终转换为字符串。您可以使用以下代码将其转换回float:

$sumofvar = (float) $row->sumofvar;

或者使用函数floatval()

$sumofvar = floatval($row->sumofvar);