在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数据库中选择数据时,数据类型将始终转换为字符串。可以使用以下代码将其转换回float:

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

或者使用函数floatval()
$sumofvar = floatval($row->sumofvar);

关于php - 类型转换Fluent聚合查询结果以输入Laravel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29493233/

10-13 04:49