如何在 Laravel 视图中显示 SQL Sum() 语句的 stdClass 类型对象这样的结果?

How to display a stdClass type object such result of SQL Sum() statement in a Laravel view?

在 /routes/web.php 路由文件中,我有以下代码:

Route::get('/db', function () {
  $result = DB::select('SELECT SUM(votes) FROM table WHERE column1 = ? AND column2 = ? AND column3 LIKE ?', ['US', 3, '30%']);

  return view('read', ['result' => $result);

我想知道如何在视图中显示此结果。我虽然有点像

{{ $result->SUM(votes)) }}

会起作用,但事实并非如此。我收到以下错误消息:

Call to a member function SUM() on array (View: /var/www/tse/resources/views/read.blade.php)

在/resources/views/read.blade.php查看文件中我printed/dumped变量如下:

<ul>
  <li> {{ print_r ($result); }} </li>
  <li> {{ var_dump ($result); }} </li>
</ul>

<ul>
  <li> {{ $result->SUM(votes) }} </li>
</ul>

收到信息如下:

Array ( [0] => stdClass Object ( [SUM(votes)] => 86820 ) ) 1
array(1) { [0]=> object(stdClass)#291 (1) { ["SUM(votes)"]=> string(5) "86820" } }

所以查询运行良好(也直接在 MySQL 中),但我无法在无序列表中显示最终的纯结果 86820。

提供一个更简单的别名列名称,如下所示:

$result = DB::select('SELECT SUM(votes) as vote_sum FROM table WHERE column1 = ? AND column2 = ? AND column3 LIKE ?', ['US', 3, '30%']);

然后在您的视图中显示 blade 文件,如下所示:

<li> {{ $result[0]->vote_sum }} </li>