
在 laravel 中,使用 db::select() 执行原生 sql 查询时,返回的结果通常是一个包含 stdclass 对象的数组。当查询包含聚合函数如 sum() 时,我们需要正确地从这个对象中提取数值,并在视图中显示。
直接访问数组中的 stdClass 对象并尝试调用不存在的方法会导致错误。例如,尝试 $result->SUM(votes) 会抛出 "Call to a member function SUM() on array" 错误,因为 $result 是一个数组,而 SUM() 不是数组的方法。
正确的做法是:
示例代码:
在 /routes/web.php 文件中:
Route::get('/db', function () {
$result = DB::select('SELECT SUM(votes) as vote_sum FROM table WHERE column1 = ? AND column2 = ? AND column3 LIKE ?', ['US', 3, '30%']);
return view('read', ['result' => $result]);
});在这个例子中,我们使用 as vote_sum 为 SUM(votes) 的结果指定了别名 vote_sum。
在 /resources/views/read.blade.php 文件中:
<ul>
<li> {{ $result[0]->vote_sum }} </li>
</ul>这里,$result[0] 访问数组的第一个元素(即 stdClass 对象),然后 ->vote_sum 访问该对象的 vote_sum 属性,从而得到 SUM(votes) 的结果。
注意事项:
总结:
在 Laravel 视图中显示 SQL SUM() 结果的关键在于:
通过遵循这些步骤,可以避免常见的错误,并成功地在 Laravel 视图中显示 SQL SUM() 结果。
以上就是在 Laravel 视图中显示 SQL SUM() 结果的正确方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号