php - 检索数组而不是键 :val (laravel/eloquent)

标签 php laravel eloquent

此查询:

$ids = EnergyMeters::leftJoin('meteringpoint_energymeter_relation', 'energymeter.id', '=', 
'meteringpoint_energymeter_relation.meterId')
                    ->where('id', '=', $meterPointId)
                    ->where('Deleted', '=', '0')
                    ->select('energymeter.id')
                    ->orderBy('name')
                    ->get();

结果给了我一些 id(结构为 key、val)

[{"id":"03cd0c39-a51c-41a0-bbe3-37ae641d051e"},{"id":"0ebf61e7-b751-4931-b737-d8f71297e499"}, {"id"}, '...']

但是我只需要 ids 作为这个新的求和查询的数组:

Data::select(array(DB::RAW('sum(v1) as sumV1', 'sum(v2) as sumV2')))
            ->whereIn('id', $ids)
            ->where('PointOfTime', '>', $from)
            ->where('PointOfTime', '<=', $to + 86400)
            ->get();

对此有什么 Eloquent 解决方案吗?否则,我将循环遍历 key 和 val 数组并将它们的值推送到一个新数组。没那么聪明吗?

//编辑问题以使其更清楚

最佳答案

对第一个查询结果集使用;

$data = Data::select(array(DB::RAW('sum(v1) as sumV1', 'sum(v2) as sumV2')))
        ->whereIn('id', $ids)
        ->where('PointOfTime', '>', $from)
        ->where('PointOfTime', '<=', $to + 86400)
        ->get();

$ids = $data->lists('id');

注意lists('id'),这将为您提供所需的数组。然后您可以将结果传递到另一个查询中。

关于php - 检索数组而不是键 :val (laravel/eloquent),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26803097/

相关文章:

php - 如何在mysql中制作具有特定日期范围的报告

javascript - PHP 如果条件不工作

laravel - 如何在Blade(Laravel 5)中扩展多个模板?

php - Laravel lockforupdate(悲观锁)

php - 使用 Laravel 插入带有句点的表(有 Blob )

php - Laravel 中的原始相关性查询。如何处理?

javascript - 读取 php/js 中的 JSON 响应对象

php - 来自 php 的动态 .ics 未在 Google 日历中更新

php - 从 div 获取表单输入 laravel 的内容

php - Eloquent 的 Model::save() 方法有哪些可用选项?