php - 无法理解如何从查询结果中提取数据
问题描述
我是 Laravel/Eloquent 的新手,我无法理解如何从查询结果中提取数据。
在 Laravel 中,我在控制器中调用以下查询
$purchase['purchase_price_total_LY'] = DB::table('coins')
->select(DB::raw('SUM (purchase_price) as purchase_price_total_LY'))
->where('user_email', '=', auth()->user()->email)
->whereBetween(DB::raw('DATE(purchase_date)'), [$range_lastyr_start, $range_lastyr_end])
->get();
并将结果传递回返回中的视图,如下所示:
return view ('pages.financials', compact('user', 'purchase'));
在视图中:
<td>Purchase Price:</td><td><a> {{$purchase['purchase_price_total_LY']}}</a></td>
视图中的结果是这样的:
[{"purchase_price_total_ly":"37"}]
当我做 dd($purchase, $purchase['purchase_price_total_LY']); 我看到以下内容:
array:1 [▼
"purchase_price_total_LY" => Illuminate\Support\Collection {#548 ▼
#items: array:1 [▼
0 => {#547 ▼
+"purchase_price_total_ly": "37"
}
]
}
]
Illuminate\Support\Collection {#548 ▼
#items: array:1 [▼
0 => {#547 ▼
+"purchase_price_total_ly": "37"
}
]
}
从视图中的数组中提取 37 的最合适方法是什么?
解决方案
如果只打算从数据库返回 1 个值,您可以像这样将 get 更改为第一个
$purchase['purchase_price_total_LY'] = optional(DB::table('coins')
->select(DB::raw('SUM (purchase_price) as purchase_price_total_LY'))
->where('user_email', '=', auth()->user()->email)
->whereBetween(DB::raw('DATE(purchase_date)'), [$range_lastyr_start, $range_lastyr_end])
->first())->purchase_price_total_LY;
推荐阅读
- reactjs - 未经身份验证用户的反应路由器
- java - 使用 Java8 Stream API 合并两个 hashmap 列表
- java - 将指向 ArrayList 的 LinkedList 的指针转换为 String
- .net - 构建 dotnet vuejs 模板时出现“未知浏览器查询”错误
- javascript - 如何在悬停表格行上显示各个表格单元格的内容?
- javascript - 如果变量是数组、字符串、数字,则签入模板
- swift - swift中具有多个参数的函数
- hbase - Kerberos 主体没有预期的格式
- json-server - json-server:不匹配路由的默认 JSON
- javascript - 通过 nodejs 或 reactjs 连接到 iTunes