You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel视图中展示SQL SUM()语句返回的stdClass类型查询结果

问题原因

DB::select执行查询后返回的是结果数组,数组中的每一个元素才是对应查询行的stdClass对象,因此你直接对$result调用方法会触发数组调用成员函数的报错。同时你的聚合字段没有设置别名,默认属性名为SUM(votes),包含特殊字符需要特殊方式访问。
另外注意你原有路由代码里有语法疏漏,return view('read', ['result' => $result);缺少右方括号,需要补全为return view('read', ['result' => $result]);避免额外报错。

解决方案

方案1:直接在视图中取值

按照现有代码结构,直接用以下写法即可输出目标数值:

{{ $result[0]->{'SUM(votes)'} }}

原理是先取数组的第一个元素,再通过花括号+引号的方式访问包含特殊字符的对象属性。

方案2(更推荐):SQL加别名简化逻辑

在写聚合查询时给结果起别名,后续取值会更清晰不易出错:

  1. 修改路由中的SQL和传参逻辑:
Route::get('/db', function () {
  // 给SUM结果起别名total_votes
  $result = DB::select('SELECT SUM(votes) as total_votes FROM table WHERE column1 = ? AND column2 = ? AND column3 LIKE ?', ['US', 3, '30%']);
  // 直接取出数值传给视图,避免视图处理复杂逻辑
  return view('read', ['total_votes' => $result[0]->total_votes]);
});
  1. 视图中直接输出即可:
{{ $total_votes }}

内容的提问来源于stack exchange,提问作者Aloysia de Argenteuil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:15:04