【问题标题】:Cast Fluent Aggregate Query Result to type in Laravel将 Fluent 聚合查询结果转换为在 Laravel 中输入
【发布时间】:2015-06-12 03:31:36
【问题描述】:

在 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 laravel laravel-4


【解决方案1】:

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

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

或者使用函数floatval():

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

【讨论】:

    猜你喜欢
    • 2015-10-30
    • 2021-06-19
    • 2014-07-31
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2013-05-13
    • 1970-01-01
    相关资源
    最近更新 更多