在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
将作为字符串而不是浮点/十进制返回。该列在MySQL中为十进制。
目前,我必须使用array_map
或类似方法将每个值转换为数字。有没有办法让Fluent从聚合函数中获得数字结果?
当您使用PHP从MySQL数据库中选择数据时,数据类型将始终转换为字符串。您可以使用以下代码将其转换回浮动:
$sumofvar = (float) $row->sumofvar;
或者使用函数floatval():
$sumofvar = floatval($row->sumofvar);